Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This document outlines the "Formatting Export Certificate Reference Numbers" script, aimed at standardizing reference numbers across export certificates in Docbits. Proper formatting ensures that reference numbers comply with external systems or regulatory requirements.
The script's primary goal is to format reference numbers on export certificates, ensuring they meet a predefined length requirement by padding them with leading zeros. This consistency aids in maintaining a standardized format for all export documents processed through Docbits.
The script identifies the reference_number
field in an export certificate, checks its length, and if necessary, pads the number with leading zeros to ensure it meets the minimum length requirement.
This document provides a detailed guide on the "Calculating Total Charges" script within the Docbits platform. The script is designed to automatically calculate the total amount charged on an invoice by summing up various individual charges. This automation enhances accuracy and efficiency in document processing.
The aim of this script is to streamline the calculation process for total charges on invoices. By automatically adding up specified charges, such as base charges, taxes, and additional fees, the script ensures that the total charges reflected on each invoice are accurate and comprehensive.
The "Calculating Total Charges" script automates the process of summing up various charges and additional amounts within invoice documents. This guide walks you through the script setup, logic, and application to ensure accurate total charge calculations across your documents.
This script aims to provide a dynamic way to calculate the total charges on an invoice by adding up different charge types, such as base charges, freight (Fracht), and packaging (Verpackung). It then updates the invoice's total charges field with the calculated sum, ensuring accurate billing information.
The script retrieves values from specified fields, converts them to floats, sums them up, and then updates the total_charges
field with the result. If the total_charges
field doesn't exist, the script creates this field and sets its value accordingly.
This section of the script processes an invoice table to remove any lines where both the quantity and the total amount are zero or not provided.
Check for INVOICE_TABLE: It starts by checking if the INVOICE_TABLE
key exists in the tables_dict
dictionary.
Iterate Over Rows: For each row in the table, the script initializes flags and variables to determine if the TOTAL_AMOUNT
and QUANTITY
columns exist and to capture their values.
Check Column Names: As it iterates through each column in a row, it looks for columns named TOTAL_AMOUNT
and QUANTITY
.
If TOTAL_AMOUNT
is found, it captures the value. If this value is non-zero, it converts it to a float.
Similarly for QUANTITY
, capturing and converting the value if it is non-zero.
Mark Row for Deletion: After checking both columns in a row, if both the total amount and quantity are effectively zero (either by being zero or not existing), the row is marked for deletion by setting row['is_deleted']
to True
.
This section calculates the total amount from all lines in an invoice and compares it to the invoice’s reported total to validate their consistency.
Initialize Line Total: Starts by setting a variable lines_total
to 0.0 to accumulate the total amount from all lines.
Sum Line Amounts: Iterates over each row in the INVOICE_TABLE
, extracting the TOTAL_AMOUNT
from each and adding it to lines_total
.
Retrieve and Convert Invoice Total: Fetches the total invoice amount using a helper function get_field_value
and converts it to a float.
Compare Totals: Finally, it checks if the absolute difference between the calculated line total (lines_total
) and the reported invoice total (total_amount
) exceeds a threshold of 0.05. If so, it marks the invoice total field as invalid using another helper function set_field_as_invalid
, citing a mismatch.
The script effectively ensures data integrity by:
Removing data rows that do not contribute to the invoice’s financial total due to lacking quantities or amounts.
Validating the consistency between the sum of individual line amounts and the overall invoice total, highlighting discrepancies for further action.
This automation helps maintain accurate financial records and can be crucial for systems like ERP that require precise data for accounting and financial reporting.
Dit module bevat functies voor het manipuleren van documentgegevens en het uitvoeren van verschillende bewerkingen met betrekking tot documentvelden.
Stelt de waarde van een veld in de documentgegevens in.
document_data*
dictionary
De documentgegevens met veldinformatie
field_name*
string
De naam van het in te stellen veld
value*
any
De waarde die voor het veld moet worden ingesteld
Stelt de waarde van een datumveld in de documentgegevens in.
document_data*
dictionary
De documentgegevens met veldinformatie
field_name*
string
De naam van het in te stellen veld
value*
string
De datumwaarde die moet worden ingesteld in ISO-formaat (bijv. "2020-12-31").
add_days (optioneel)
int
Voegt extra dagen toe aan de gegeven datum Standaard is 0
skip_weekend (optioneel)
bool
Overslaat de datum als deze op het weekend valt
Standaard is False
Stelt de waarde van een bedragveld in de documentgegevens in.
document_data*
dictionary
De documentgegevens met veldinformatie
field_name*
string
De naam van het in te stellen veld
value*
string
De waarde die voor het veld moet worden ingesteld (geef een nummer door als string, bijv. "123456")
Haalt de waarde van een veld uit de documentgegevens.
document_data*
dictionary
De documentgegevens met veldinformatie
field_name*
string
De naam van het in te stellen veld
default_value (optioneel)
any
Geeft default_value terug als er geen veldwaarde wordt gevonden
Standaard is None
is_clean (optioneel)
bool
Converteert de waarde naar hoofdletters en verwijdert extra spaties
Standaard is False
Waarde van het opgegeven veld
Maakt een nieuw veld met de opgegeven naam en waarde.
field_name*
str
De documentgegevens met veldinformatie
value (optioneel)
any
De initiële waarde voor het veld
Standaard is ""
Woordenboek van het nieuw aangemaakte veld
Verwijdert een veld uit de documentgegevens
document_data*
dictionary
De documentgegevens met veldinformatie
field_name*
string
De naam van het te verwijderen veld
Document_data als json en als dict nadat het veld is verwijderd
Stelt het 'is_required' attribuut van een veld in de documentgegevens in.
document_data*
dictionary
De documentgegevens met veldinformatie
field_name*
string
De naam van het in te stellen veld
value*
bool
De waarde die voor het veld moet worden ingesteld
Stelt het 'force_validation' attribuut van een veld in de documentgegevens in.
document_data*
dictionary
De documentgegevens met veldinformatie
field_name*
string
De naam van het in te stellen veld
value*
bool
De waarde die voor het veld moet worden ingesteld
reset_validation (optioneel)
bool
Stelt het "is_validated" attribuut in op de opgegeven waarde
Standaard is False
Markeert een veld in het validatiescherm als ongeldig en markeert het.
document_data*
dictionary
De documentgegevens met veldinformatie
field_name*
string
De naam van het veld dat als ongeldig moet worden gemarkeerd
message*
string
Het validatiebericht voor het veld
code (optioneel)
string
Foutcode voor de validatie
Standaard is None
Stelt een aangepast attribuut van een veld in de documentgegevens in.
document_data*
dictionary
De documentgegevens met veldinformatie
field_name*
string
De naam van het in te stellen veld
attribute_name*
string
De naam van het in te stellen attribuut
value*
any
De waarde die voor het attribuut moet worden ingesteld
Controleert of een leverancier geldig is op basis van de opgegeven criteria.
user*
UserAuthentication
De geauthenticeerde gebruiker
filter_data_json*
json
Filtercriteria voor het valideren van de leverancier
sub_org_id (optioneel)
string
Optionele sub-organisatie-ID voor filtering
Standaard is None
True, als de gebruiker geldig is
False als de gebruiker niet geldig is
Decodeert documentgegevens en retourneert deze als een string.
document_data*
dictionary
De documentgegevens met veldinformatie
Documentgegevens als een string.
Werk de status van een document met een specifieke ID bij naar de gegeven status.
doc_id*
string
De ID van het document dat moet worden bijgewerkt
user*
of user ID
of UserAuthentication
object
De gebruiker die de update uitvoert
org_id*
string
De ID van de organisatie waartoe het document behoort
status*
string
De nieuwe status van het document
message (optioneel)
string
Optioneel bericht dat aan de statusupdate is gekoppeld
Standaard is None
doc_classification_class (optioneel)
string
Optionele documentclassificatieklasse
Standaard is None
Haalt de LOV-waarden op van een specifieke org_id en sleutel.
org_id*
string
De ID van de organisatie waartoe het document behoort
key*
string
De sleutel van de vereiste Lijst Van Waarden
return_type (optioneel)
string
Het type waarin de gegevens moeten worden geretourneerd
Standaard is 'list_of_objects'
sub_org_id (optioneel)
string
Optionele sub-organisatie-ID voor filtering
Standaard is None
LOV-waarden als een lijst van objecten of als een lijst.
Formatteert een decimale waarde naar en_US.UTF-8-formaat.
value*
float, decimal.Decimal, str
De waarde die moet worden geformatteerd.
to_locale (optioneel)
string
Het formaat waarin de waarde wordt omgezet.
Standaard is 'en_US.UTF-8'
max_decimal_places (optioneel)
int
Optionele sub-organisatie-ID voor filtering
Standaard is 4
min_decimal_places (optioneel)
int
Het minimum aantal decimalen dat moet worden overwogen
Standaard is 2
value: De waarde die moet worden geformatteerd.
to_locale (optioneel): Het formaat waarin de waarde wordt omgezet.
max_decimal_places (optioneel): Het maximum aantal decimalen dat moet worden overwogen.
min_decimal_places (optioneel): Het minimum aantal decimalen dat moet worden overwogen.
De geformatteerde waarde.
Vergelijkt twee waarden op gelijkheid, met verschillende datatypes.
value1*
any
De eerste waarde om te vergelijken
value2*
any
De tweede waarde om te vergelijken
True als de waarden gelijk zijn en False als ze verschillen
Maakt een taak aan, wijst deze toe aan een gebruiker of groep, stelt prioriteit in en verzendt optioneel een e-mail.
user*
of user ID
of UserAuthentication
object
De gebruiker die de update uitvoert
document_data*
dictionary
De documentgegevens met veldinformatie
title*
string
De titel van de taak
description*
string
De beschrijving van de taak
priority*
string
De prioriteit van de taak
assigned_to_user_id*
int
De ID van de gebruiker aan wie de taak moet worden toegewezen
assigned_to_group_id*
int
De ID van de groep aan wie de taak moet worden toegewezen
send_email*
bool
Bepaal of er een e-mail moet worden verzonden of niet
Dict dat aangeeft of het proces succesvol was of niet
Stelt de sub_org_id van de opgegeven document_data in.
document_data*
dictionary
De documentgegevens met veldinformatie
sub_org_id*
string
Optionele sub-organisatie-ID voor filtering
Haalt de gebruiker op met de bijbehorende gebruikers-ID.
user_id*
string
De ID van de gebruiker
De gebruiker met de bijbehorende gebruikers-ID
Haalt de groep op met de bijbehorende groeps-ID.
Parameters:
group_id*
string
De ID van de groep
De groep met de bijbehorende groeps-ID
Voegt een kolom toe aan de opgegeven tabel.
Parameters:
table*
string
De tabel waaraan de kolom moet worden toegevoegd
col_name*
string
De naam van de kolom
default_value (optioneel)
any
De initiële waarde voor het veld
Standaard is None
Haalt de waarde van een opgegeven kolom op.
row*
string
De rij waar de waarde zich bevindt
col_name*
string
De naam van de kolom
default_value (optioneel)
any
De initiële waarde voor het veld
Standaard is None
is_clean (optioneel)
bool
Converteert de waarde naar hoofdletters en verwijdert extra spaties
Standaard is False
De waarde van de opgegeven kolom
Stelt de waarde van een opgegeven kolom in.
row*
string
De rij waar de waarde zich bevindt
col_name*
string
De naam van de kolom
value*
any
De waarde die op de opgegeven locatie moet worden ingesteld
True als de wijziging succesvol was
Stelt de datumwaarde van een opgegeven kolom in.
document_data*
dictionary
De documentgegevens met veldinformatie
row*
string
De rij waar de waarde zich bevindt
col_name*
string
De naam van de kolom
value*
string
De datumwaarde die moet worden ingesteld in ISO-formaat (bijv. "2020-12-31")
add_days (optioneel)
int
Voegt extra dagen toe aan de gegeven datum
Standaard is 2
Converteert waarde naar string en stelt de waarde voor de kolom in
Stelt de kolominhoud in op de waarde
Format waarde volgens de locale
document_data*
dictionary
De documentgegevens met veldinformatie
row*
string
De rij waar de waarde zich bevindt
column_name*
string
De naam van de kolom
value*
string
De waarde die voor het veld moet worden ingesteld (geef een nummer door als string, bijv. "123456")
Verwijdert rijen uit de opgegeven tabel.
document_data*
dictionary
De documentgegevens met veldinformatie
table_name*
string
De naam van de tabel
count*
int
Hoeveel rijen moeten worden verwijderd
start*
int
Het startpunt
Verwijdert alle rijen behalve één uit de opgegeven tabel
document_data*
dictionary
De documentgegevens met veldinformatie
line_number*
int
Het nummer van de regel die niet moet worden verwijderd
Je kunt ook enkele van de ingebouwde Python-functies gebruiken:
abs(): Geeft de absolute waarde van een getal terug.
len(): Geeft de lengte (aantal items) van een object, zoals een lijst of string, terug.
isinstance(): Controleert of een object een instantie is van een bepaalde klasse of type.
print(): Drukt output af naar de console.
round(): Rondt een drijvend-getal af naar een opgegeven aantal decimalen.
str_to_bool(): Converteert een string naar een boolean waarde (True of False).
type(): Geeft het type van een object terug.
dict(): Maakt een woordenboekobject aan.
list(): Maakt een lijstobject aan.
str(): Converteert een waarde naar een string.
float(): Converteert een waarde naar een drijvend-getal.
int(): Converteert een waarde naar een geheel getal.
Voor meer details, bezoek de officiële Python-documentatie: Ingebouwde Functies.
Je kunt ook deze functies specifiek voor het werken met strings gebruiken:
lower(): Converteert alle tekens in een string naar kleine letters.
upper(): Converteert alle tekens in een string naar hoofdletters.
split(): Splitst een string in een lijst op basis van een scheidingsteken (bijv. spatie of komma).
startswith(): Controleert of een string begint met een opgegeven voorvoegsel.
endswith(): Controleert of een string eindigt met een opgegeven achtervoegsel.
strip(): Verwijdert eventuele leidende of achterblijvende spaties uit een string.
Deze functies maken deel uit van de wiskundemodule en zijn nuttig voor wiskundige bewerkingen:
floor(): Geeft het grootste gehele getal dat kleiner is dan of gelijk aan een gegeven getal terug.
ceil(): Geeft het kleinste gehele getal dat groter is dan of gelijk aan een gegeven getal terug.
Voor meer informatie, bekijk de officiële Python-documentatie: Wiskunde Module Functies.
re.search(): Zoekt naar een patroon binnen een string en retourneert de eerste match.
Zie meer details hier: re.search Documentatie.
Hier zijn enkele nuttige functies uit externe bibliotheken:
deepcopy(): Maakt een kopie van een object, inclusief geneste objecten (uit de copy-module). Deepcopy Documentatie.
levenshtein_distance(): Berekent het aantal bewerkingen (invoegingen, verwijderingen, vervangingen) dat nodig is om de ene string in de andere te veranderen. Deze functie is beschikbaar in de Jellyfish-bibliotheek.
Je kunt de volgende functies gebruiken voor het werken met data en tijden:
strptime(): Converteert een string naar een datetime-object op basis van een opgegeven formaat.
strftime(): Formatteert een datetime-object naar een string op basis van een opgegeven formaat.
Voor meer informatie, bekijk de officiële documentatie: Datum en Tijd Functies.
This document details the "Generating Extended Invoice Numbers" script, which automates the creation of extended invoice numbers in Docbits. Extended invoice numbers combine multiple document identifiers, such as the invoice ID and the purchase order number, into a single, comprehensive identifier. This script enhances document traceability and simplifies record-keeping.
The purpose of this script is to streamline the process of generating extended invoice numbers by automatically concatenating the invoice ID and purchase order number, thereby providing a unified and unique identifier for each invoice document.
The script checks for the presence of invoice ID and purchase order number fields within the document, concatenates their values if both are present (separated by a hyphen), and updates or creates a new field to store the combined value.
A script that sets USD as the default currency and checks if its valid or not
The script is designed to set USD (United States Dollar) as the default currency for an application or system, ensuring that all monetary values are displayed and processed in USD unless specified otherwise.
The primary goal of this script is to automatically fill the currency field with USD and check if it is valid or not.
Welkom bij de Docbits scripting gids! Hier leer je hoe je scripts kunt gebruiken om je documentverwerking binnen Docbits te automatiseren en te verbeteren. Scripts maken aangepaste veldmanipulatie, datatransformatie en logica-implementatie mogelijk voor verschillende documenttypen.
Scripts in Docbits worden geschreven in Python. Ze werken samen met documentvelden en metadata om een breed scala aan bewerkingen uit te voeren, van eenvoudige dataopmaak tot complexe logica.
get_field_value(fields_dict, field_name, default=None)
: Haalt de waarde van een opgegeven veld op.
set_field_value(fields_dict, field_name, value)
: Stelt de waarde van een opgegeven veld in.
create_new_field(field_name, value)
: Creëert een nieuw veld met een opgegeven naam en waarde.
format_decimal_to_locale(value, locale)
: Formatteert een decimale waarde volgens een opgegeven locale.
Hieronder staan verschillende voorbeelden die veelvoorkomende scriptingtaken demonstreren.
Standaardiseer valutatekens of tekst naar ISO valutacodes.
This guide focuses on automating the creation of extended invoice numbers in Docbits, a crucial feature for improving invoice management and tracking. The "Generating Extended Invoice Numbers" script concatenates various document identifiers, such as invoice ID and purchase order number, to create a comprehensive and unique identifier for each invoice.
The primary goal of this script is to automate the generation of extended invoice numbers, facilitating easier tracking and management of invoices by combining multiple identifiers into a single, unique number.