Funkcje
Dokumentacja funkcjonalna
Ten moduł zawiera funkcje do manipulacji danymi dokumentów oraz wykonywania różnych operacji związanych z polami dokumentów.
Funkcje
set_field_value()
Ustawia wartość pola w danych dokumentu.
po_number = get_field_value(fields_dict, 'purchase_order', None)
if not po_number:
po_number = ''
if po_number:
set_field_value(fields_dict, "invoice_sub_type", 'Purchase Invoice')
else:
set_field_value(fields_dict, "invoice_sub_type", 'Cost Invoice')
Parametry:
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
field_name*
string
Nazwa pola do ustawienia
value*
any
Wartość do ustawienia dla pola
remove_link (opcjonalnie)
bool
Usuwa klucz "coords" z pola.
set_date_value()
Ustawia wartość pola daty w danych dokumentu.
invoice_date = get_field_value(document_data, 'invoice_date', None)
if not document_json.get("script_executed", False):
if invoice_date:
set_date_value(document_data, "accounting_date", invoice_date)
document_json["script_executed"] = True
Parametry:
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
field_name*
string
Nazwa pola do ustawienia
value*
string
Wartość daty do ustawienia w formacie ISO (np. "2020-12-31").
add_days (opcjonalnie)
int
Dodaje dodatkowe dni do podanej daty Domyślnie 0
skip_weekend (opcjonalnie)
bool
Pomija datę, jeśli przypada na weekend
Domyślnie False
remove link (opcjonalnie)
bool
Usuwa klucz "coords" z pola.
exclude_final_days (opcjonalnie)
albo string
albo int
Określa dni do wykluczenia (0-6 lub niedziela do soboty)
set_amount_value()
Ustawia wartość pola kwoty w danych dokumentu.
total_amount = get_field_value(document_data, "net_amount")
lines_total = 0.0
set_amount_value(document_data, "net_amount",str(lines_total))
Parametry:
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
field_name*
string
Nazwa pola do ustawienia
value*
string
Wartość do ustawienia dla pola (przekaż liczbę jako string np. "123456"
remove link (opcjonalnie)
bool
Usuwa klucz "coords" z pola.
get_field_value()
Pobiera wartość pola z danych dokumentu.
total_amount = get_field_value(document_data, "net_amount")
lines_total = 0.0
set_amount_value(document_data, "net_amount", str(lines_total))
Parametry:
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
field_name*
string
Nazwa pola do ustawienia
default_value (opcjonalnie)
any
Zwraca default_value, jeśli nie znaleziono wartości pola
Domyślnie None
is_clean (opcjonalnie)
bool
Konwertuje wartość na wielkie litery i usuwa dodatkowe spacje
Domyślnie False
Zwraca:
Wartość określonego pola
create_new_field()
Tworzy nowe pole z określoną nazwą i wartością.
currency = get_field_value(document_data, 'currency', None)
if not currency:
if 'currency' not in fields_dict:
new_field = create_new_field('currency','')
fields_dict['currency'] = new_field
document_json['fields'].append(new_field)
set_field_value(document_data, "currency", "USD")
Parametry:
field_name*
str
Dane dokumentu zawierające informacje o polach
value (opcjonalnie)
any
Początkowa wartość dla pola
Domyślnie ""
Zwraca:
Słownik nowo utworzonego pola
delete_field()
Usuwa pole z danych dokumentu
field_amount = get_field_value(document_data, field_name)
if not field_amount:
delete_field(document_data, fields_dict, field_name)
else:
field_amount = float(field_amount)
if field_amount == 0:
delete_field(document_data, fields_dict, field_name)
Parametry:
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
field_name*
string
Nazwa pola do usunięcia
Zwraca:
Document_data jako json i jako dict po usunięciu pola
set_is_required()
Ustawia atrybut 'is_required' pola w danych dokumentu.
net_amount = get_field_value(document_data, "net_amount", None)
if net_amount:
set_is_required(document_data, "tax_country", True)
set_is_required(document_data, "tax_code_without_country", True)
Parametry:
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
field_name*
string
Nazwa pola do ustawienia
value*
bool
Wartość do ustawienia dla pola
set_force_validation()
Ustawia atrybut 'force_validation' pola w danych dokumentu.
if supplier_id in supplier_to_check:
set_force_validation(document_data, 'purchase_order', True, reset_validation=reset_validation)
Parametry:
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
field_name*
string
Nazwa pola do ustawienia
value*
bool
Wartość do ustawienia dla pola
reset_validation (opcjonalnie)
bool
Ustawia atrybut "is_validated" na określoną wartość
Domyślnie False
set_field_as_invalid()
Oznacza pole na ekranie walidacji jako nieważne i podświetla je.
if not document_date:
set_field_as_invalid(document_data, "document_date", "Es ist kein Datum vorhanden", "INVALID_VALUE")
Parametry:
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
field_name*
string
Nazwa pola do oznaczenia jako nieważne
message*
string
Wiadomość walidacyjna dla pola
code (opcjonalnie)
string
Kod błędu dla walidacji
Domyślnie None
set_field_attribute()
Ustawia niestandardowy atrybut pola w danych dokumentu.
if purchase_order:
if po_supplier_id != invoice_supplier_id:
set_field_as_invalid(document_data, "supplier_name", "Supplier is different from PO supplier")
else:
set_field_attribute(document_data, "supplier_name", "is_valid", True)
set_field_attribute(document_data, "supplier_name", "validation_message","")
Parametry:
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
field_name*
string
Nazwa pola do ustawienia
attribute_name*
string
Nazwa atrybutu do ustawienia
value*
any
Wartość do ustawienia dla atrybutu
is_supplier_valid()
Sprawdza, czy dostawca jest ważny na podstawie podanych kryteriów.
bool = is_supplier_valid(user, {"name": "Supplier Inc."})
Parametry:
user*
UserAuthentication
Użytkownik uwierzytelniony
filter_data_json*
json
Kryteria filtrujące do walidacji dostawcy
sub_org_id (opcjonalnie)
string
Opcjonalny identyfikator podorganizacji do filtrowania
Domyślnie None
Zwraca:
True, jeśli użytkownik jest ważny
False, jeśli użytkownik nie jest ważny
get_document_content()
Dekoduje dane dokumentu i zwraca je jako string.
document_content = get_document_content(doc)
if document_content:
document_content = document_content.lower()
Parametry:
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
Zwraca:
Dane dokumentu jako string.
update_document_status_with_doc_id()
Aktualizuje status dokumentu o określonym ID do podanego statusu.
genehmigung_user_1 = get_field_value(document_data, 'genehmigung_user_1', None)
if genehmigung_user_1 != "LEER":
update_document_status_with_doc_id(document_json['doc_id'], user, document_json['org_id'], "validated_pending_approval")
Parametry:
doc_id*
string
ID dokumentu do aktualizacji
user*
albo user ID
albo UserAuthentication
obiekt
Użytkownik wykonujący aktualizację
org_id*
string
ID organizacji, do której należy dokument
status*
string
Nowy status dokumentu
message (opcjonalnie)
string
Opcjonalna wiadomość związana z aktualizacją statusu
Domyślnie None
doc_classification_class (opcjonalnie)
string
Opcjonalna klasa klasyfikacji dokumentu
Domyślnie None
get_lov_values()
Pobiera wartości LOV z określonego org_id i klucza.
reverse_charge_to_check = get_lov_values(org_id, 'Kosten', return_type="list_of_values")
Parametry:
org_id*
string
ID organizacji, do której należy dokument
key*
string
Klucz wymaganej Listy Wartości
return_type (opcjonalnie)
string
Typ, w jakim dane powinny być zwrócone
Domyślnie 'list_of_objects'
sub_org_id (opcjonalnie)
string
Opcjonalny identyfikator podorganizacji do filtrowania
Domyślnie None
language_code (opcjonalnie)
string
Ten parametr ustawia język, w którym wartości będą zwracane. Akceptuje kody językowe, takie jak "en" dla angielskiego lub "fr" dla francuskiego.
Domyślnie ""
Zwraca:
Wartości LOV jako lista obiektów lub jako lista.
format_decimal_to_locale()
Formatuje wartość dziesiętną do formatu en_US.UTF-8.
standard_value = "{0:.2f}".format(total)
formatted_value = format_decimal_to_locale(
standard_value, document_json['amount_format_locale']
)
Parametry:
value*
float, decimal.Decimal, str
Wartość, która powinna być sformatowana.
to_locale (opcjonalnie)
string
Typ, w jakim dane powinny być zwrócone
Domyślnie 'en_US.UTF-8'
max_decimal_places (opcjonalnie)
int
Opcjonalny identyfikator podorganizacji do filtrowania
Domyślnie 4
min_decimal_places (opcjonalnie)
int
Minimalna liczba miejsc dziesiętnych, które powinny być brane pod uwagę
Domyślnie 2
value: Wartość, która powinna być sformatowana.
to_locale (opcjonalnie): Format, w jakim wartość jest przekształcana.
max_decimal_places (opcjonalnie): Maksymalna liczba miejsc dziesiętnych, które powinny być brane pod uwagę.
min_decimal_places (opcjonalnie): Minimalna liczba miejsc dziesiętnych, które powinny być brane pod uwagę.
Zwraca:
Sformatowana wartość.
compare_values()
Porównuje dwie wartości pod kątem równości, obsługując różne typy danych.
result = compare_values(10, "10")
Parametry:
value1*
any
Pierwsza wartość do porównania
value2*
any
Druga wartość do porównania
Zwraca:
True, jeśli wartości są równe, i False, jeśli się różnią
create_document_task()
Tworzy zadanie, przypisuje je do użytkownika lub grupy, ustawia priorytet i opcjonalnie wysyła e-mail.
if not is_task_created:
create_document_task(user, document_data, "Herkunftsland außerhalb der EU", "Die Gelangensbestätigung kommt von einem Land außerhalb der EU. Bitte das MRN-Dokument anhängen.", "high", 1007, None, False)
document_data["document_json"]["country_check_task_created"] = True
Parametry:
user*
albo user ID
albo UserAuthentication
obiekt
Użytkownik wykonujący aktualizację
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
title*
string
Tytuł zadania
description*
string
Opis zadania
priority*
string
Priorytet zadania
assigned_to_user_id*
int
ID użytkownika, do którego zadanie powinno być przypisane
assigned_to_group_id*
int
ID grupy, do której zadanie powinno być przypisane
send_email*
bool
Określa, czy e-mail powinien być wysłany, czy nie
Zwraca:
Dict, który wskazuje, czy proces był udany, czy nie
set_document_sub_org_id()
Ustawia sub_org_id w określonych document_data.
if sub_org_id != current_sub_org_id:
document_data["document_json"]["sub_org_id4"] = sub_org_id
set_document_sub_org_id(document_data, sub_org_id)
Parametry:
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
sub_org_id*
string
Opcjonalny identyfikator podorganizacji do filtrowania
get_user_by_id()
Pobiera użytkownika o odpowiadającym ID użytkownika.
requester_mail = str(get_user_by_id(str(requester)).email.lower())
Parametry:
user_id*
string
ID użytkownika
Zwraca:
Użytkownika o odpowiadającym ID użytkownika
get_group_by_id()
Pobiera grupę o odpowiadającym ID grupy.
group_name = str(get_group_by_id(assigned_to_group_id))
Parametry:
group_id*
string
ID grupy
Zwraca:
Grupę o odpowiadającym ID grupy
get_user_by_email()
Pobiera użytkownika o odpowiadającym adresie e-mail.
user_name = str(get_user_by_email(email))
Parametry:
email*
any
Adres e-mail użytkownika
Zwraca:
Użytkownika o odpowiadającym adresie e-mail
add_table_column()
Dodaje kolumnę do określonej tabeli.
table = tables_dict.get("ORDER_CONFIRMATION_TABLE")
if table:
add_table_column(table, "PROMISED_DELIVERY_DATE")
Parametry:
table*
string
Tabela, do której powinna być dodana kolumna
col_name*
string
Nazwa kolumny
default_value (opcjonalnie)
any
Początkowa wartość dla pola
Domyślnie None
get_column_value()
Pobiera wartość określonej kolumny.
for row in table['rows']:
unit = get_column_value(row, "UNIT")
Parametry:
row*
string
Wiersz, w którym znajduje się wartość
col_name*
string
Nazwa kolumny
default_value (opcjonalnie)
any
Początkowa wartość dla pola
Domyślnie None
is_clean (opcjonalnie)
bool
Konwertuje wartość na wielkie litery i usuwa dodatkowe spacje
Domyślnie False
Zwraca
Zwraca wartość określonej kolumny, jeśli istnieje; w przeciwnym razie zwraca
None
set_column_value()
Ustawia wartość określonej kolumny. Jeśli kolumna nie istnieje, zostanie utworzona.
supplier_id = get_field_value(document_data, "supplier_id", "")
quote_table = tables_dict["QUOTE_TABLE"]
for row in quote_table.get('rows', []):
set_column_value(row,"SUPPLIER_ID", supplier_id)
Parametry:
row*
string
Wiersz, w którym znajduje się wartość
col_name*
string
Nazwa kolumny
value*
any
Wartość, która zostanie ustawiona w określonym miejscu
Zwraca:
True, jeśli zmiana była udana
set_column_date_value()
Ustawia wartość daty określonej kolumny.
set_column_date_value(document_data, row, "DELIVERY_DATE", "2020-12-31", add_days=2)
Parametry:
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
row*
string
Wiersz, w którym znajduje się wartość
col_name*
string
Nazwa kolumny
value*
string
Wartość daty do ustawienia w formacie ISO (np. "2020-12-31")
add_days (opcjonalnie)
int
Dodaje dodatkowe dni do podanej daty
Domyślnie 2
skip_weekend (opcjonalnie)
bool
Pomija datę, jeśli przypada na weekend
Domyślnie False
exclude_final_days (opcjonalnie)
albo string
albo int
Określa dni do wykluczenia (0-6 lub niedziela do soboty)
set_column_amount_value()
Konwertuje wartość na string i ustawia wartość dla kolumny
Ustawia zawartość kolumny na wartość
Formatuje wartość zgodnie z lokalizacją
quantity = float(quantity) / 1000
set_column_amount_value(document_data, row, "QUANTITY", str(quantity))
Parametry:
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
row*
string
Wiersz, w którym znajduje się wartość
column_name*
string
Nazwa kolumny
value*
string
Wartość do ustawienia dla pola (przekaż liczbę jako string np. "123456")
delete_tables()
Ta funkcja usuwa tabele z danych dokumentu.
delete_tables(document_data)
Parametry:
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
restore_tables()
Ta funkcja przywraca tabele w danych dokumentu.
restore_tables(document_data)
Parametry:
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
remove_rows_from_table()
Usuwa wiersze z określonej tabeli.
count = 1
start = 1
remove_rows_from_table(document_data,"INVOICE_TABLE",count,start)
Parametry:
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
table_name*
string
Nazwa tabeli
count*
int
Ile linii powinno zostać usuniętych
start*
int
Punkt początkowy
remove_all_rows_except_one_from_table()
Usuwa wszystkie wiersze z wyjątkiem jednego z określonej tabeli
count = 1
start = 1
remove_rows_from_table(document_data,"INVOICE_TABLE",count,start)
Parametry:
document_data*
dictionary
Dane dokumentu zawierające informacje o polach
line_number*
int
Numer linii, która nie powinna zostać usunięta
Wbudowane funkcje Pythona
Możesz również wykorzystać niektóre wbudowane funkcje Pythona:
abs(): Zwraca wartość bezwzględną liczby.
len(): Zwraca długość (liczbę elementów) obiektu, takiego jak lista lub string.
isinstance(): Sprawdza, czy obiekt jest instancją określonej klasy lub typu.
print(): Wypisuje wynik na konsolę.
round(): Zaokrągla liczbę zmiennoprzecinkową do określonej liczby miejsc dziesiętnych.
str_to_bool(): Konwertuje string na wartość boolean (True lub False).
type(): Zwraca typ obiektu.
dict(): Tworzy obiekt słownika.
list(): Tworzy obiekt listy.
str(): Konwertuje wartość na string.
float(): Konwertuje wartość na liczbę zmiennoprzecinkową.
int(): Konwertuje wartość na liczbę całkowitą.
Aby uzyskać więcej informacji, odwiedź oficjalną dokumentację Pythona: Wbudowane funkcje.
Funkcje klasy String
Możesz również używać tych funkcji specjalnie do pracy z łańcuchami:
lower(): Konwertuje wszystkie znaki w łańcuchu na małe litery.
upper(): Konwertuje wszystkie znaki w łańcuchu na wielkie litery.
split(): Dzieli łańcuch na listę na podstawie delimitera (np. spacja lub przecinek).
startswith(): Sprawdza, czy łańcuch zaczyna się od określonego prefiksu.
endswith(): Sprawdza, czy łańcuch kończy się określonym sufiksem.
strip(): Usuwa wszelkie wiodące lub końcowe białe znaki z łańcucha.
Funkcje z modułu matematycznego Pythona
Te funkcje są częścią modułu matematycznego i są przydatne do operacji matematycznych:
floor(): Zwraca największą liczbę całkowitą mniejszą lub równą danej liczbie.
ceil(): Zwraca najmniejszą liczbę całkowitą większą lub równą danej liczbie.
Aby uzyskać więcej informacji, sprawdź oficjalną dokumentację Pythona: Funkcje modułu matematycznego.
Funkcja wyrażeń regularnych
re.search(): Wyszukuje wzór w łańcuchu i zwraca pierwsze dopasowanie.
Zobacz więcej szczegółów tutaj: Dokumentacja re.search.
Funkcje zewnętrzne
Oto kilka przydatnych funkcji z zewnętrznych bibliotek:
deepcopy(): Tworzy kopię obiektu, w tym zagnieżdżonych obiektów (z modułu copy). Dokumentacja Deepcopy.
levenshtein_distance(): Oblicza liczbę edycji (wstawień, usunięć, substytucji) wymaganych do zmiany jednego łańcucha w inny. Ta funkcja jest dostępna w bibliotece Jellyfish.
Funkcje daty i czasu
Możesz używać następujących funkcji do pracy z datami i czasami:
strptime(): Konwertuje łańcuch na obiekt datetime na podstawie określonego formatu.
strftime(): Formatuje obiekt datetime na łańcuch na podstawie określonego formatu.
Aby uzyskać więcej informacji, sprawdź oficjalną dokumentację: Funkcje daty i czasu.
Last updated
Was this helpful?