Funções
Documentação Funcional
Este módulo contém funções para manipular dados de documentos e realizar várias operações relacionadas a campos de documentos.
Funções
set_field_value()
Define o valor de um campo nos dados do documento.
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')
Parâmetros:
document_data*
dictionary
Os dados do documento contendo informações do campo
field_name*
string
O nome do campo a ser definido
value*
any
O valor a ser definido para o campo
remove_link (opcional)
bool
Remove a chave "coords" do campo.
set_date_value()
Define o valor de um campo de data nos dados do documento.
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
Parâmetros:
document_data*
dictionary
Os dados do documento contendo informações do campo
field_name*
string
O nome do campo a ser definido
value*
string
O valor da data a ser definido no formato ISO (por exemplo, "2020-12-31").
add_days (opcional)
int
Adiciona dias adicionais à data fornecida O padrão é 0
skip_weekend (opcional)
bool
Ignora a data se cair no fim de semana
O padrão é False
remove link (opcional)
bool
Remove a chave "coords" do campo.
exclude_final_days (opcional)
either string
or int
Especifica os dias a serem excluídos (0-6 ou domingo a sábado)
set_amount_value()
Define o valor de um campo de valor nos dados do documento.
total_amount = get_field_value(document_data, "net_amount")
lines_total = 0.0
set_amount_value(document_data, "net_amount",str(lines_total))
Parâmetros:
document_data*
dictionary
Os dados do documento contendo informações do campo
field_name*
string
O nome do campo a ser definido
value*
string
O valor a ser definido para o campo (passar um número como string, por exemplo, "123456"
remove link (opcional)
bool
Remove a chave "coords" do campo.
get_field_value()
Obtém o valor de um campo dos dados do documento.
total_amount = get_field_value(document_data, "net_amount")
lines_total = 0.0
set_amount_value(document_data, "net_amount", str(lines_total))
Parâmetros:
document_data*
dictionary
Os dados do documento contendo informações do campo
field_name*
string
O nome do campo a ser definido
default_value (opcional)
any
Retorna default_value se nenhum valor de campo for encontrado
O padrão é None
is_clean (opcional)
bool
Converte o valor para maiúsculas e remove quaisquer espaços extras
O padrão é False
Retorna:
Valor do campo especificado
create_new_field()
Cria um novo campo com o nome e valor especificados.
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")
Parâmetros:
field_name*
str
Os dados do documento contendo informações do campo
value (opcional)
any
O valor inicial para o campo
O padrão é ""
Retorna:
Dicionário do novo campo criado
delete_field()
Deleta um campo dos dados do documento
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)
Parâmetros:
document_data*
dictionary
Os dados do documento contendo informações do campo
field_name*
string
O nome do campo a ser deletado
Retorna:
Document_data como json e como dict após o campo ser deletado
set_is_required()
Define o atributo 'is_required' de um campo nos dados do documento.
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)
Parâmetros:
document_data*
dictionary
Os dados do documento contendo informações do campo
field_name*
string
O nome do campo a ser definido
value*
bool
O valor a ser definido para o campo
set_force_validation()
Define o atributo 'force_validation' de um campo nos dados do documento.
if supplier_id in supplier_to_check:
set_force_validation(document_data, 'purchase_order', True, reset_validation=reset_validation)
Parâmetros:
document_data*
dictionary
Os dados do documento contendo informações do campo
field_name*
string
O nome do campo a ser definido
value*
bool
O valor a ser definido para o campo
reset_validation (opcional)
bool
Define o atributo "is_validated" para o valor especificado
O padrão é False
set_field_as_invalid()
Marca um campo na tela de validação como inválido e o destaca.
if not document_date:
set_field_as_invalid(document_data, "document_date", "Es ist kein Datum vorhanden", "INVALID_VALUE")
Parâmetros:
document_data*
dictionary
Os dados do documento contendo informações do campo
field_name*
string
O nome do campo a ser marcado como inválido
message*
string
A mensagem de validação para o campo
code (opcional)
string
Código de erro para a validação
O padrão é None
set_field_attribute()
Define um atributo personalizado de um campo nos dados do documento.
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","")
Parâmetros:
document_data*
dictionary
Os dados do documento contendo informações do campo
field_name*
string
O nome do campo a ser definido
attribute_name*
string
O nome do atributo a ser definido
value*
any
O valor a ser definido para o atributo
is_supplier_valid()
Verifica se um fornecedor é válido com base nos critérios fornecidos.
bool = is_supplier_valid(user, {"name": "Supplier Inc."})
Parâmetros:
user*
UserAuthentication
O usuário autenticado
filter_data_json*
json
Criterios de filtro para validar o fornecedor
sub_org_id (opcional)
string
ID de sub-organização opcional para filtragem
O padrão é None
Retorna:
True, se o usuário for válido
False se o usuário não for válido
get_document_content()
Decodifica os dados do documento e os retorna como uma string.
document_content = get_document_content(doc)
if document_content:
document_content = document_content.lower()
Parâmetros:
document_data*
dictionary
Os dados do documento contendo informações do campo
Retorna:
Dados do documento como uma string.
update_document_status_with_doc_id()
Atualiza o status de um documento com um ID específico para o status dado.
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")
Parâmetros:
doc_id*
string
O ID do documento a ser atualizado
user*
either user ID
or UserAuthentication
object
O usuário que está realizando a atualização
org_id*
string
O ID da organização à qual o documento pertence
status*
string
O novo status do documento
message (opcional)
string
Mensagem opcional associada à atualização de status
O padrão é None
doc_classification_class (opcional)
string
Classe de classificação de documento opcional
O padrão é None
get_lov_values()
Obtém os valores LOV de um org_id e chave específicos.
reverse_charge_to_check = get_lov_values(org_id, 'Kosten', return_type="list_of_values")
Parâmetros:
org_id*
string
O ID da organização à qual o documento pertence
key*
string
A chave da Lista de Valores requerida
return_type (opcional)
string
O tipo em que os dados devem ser retornados
O padrão é 'list_of_objects'
sub_org_id (opcional)
string
ID de sub-organização opcional para filtragem
O padrão é None
language_code (opcional)
string
Este parâmetro define o idioma no qual os valores serão retornados. Aceita códigos de idioma, como "en" para inglês ou "fr" para francês.
O padrão é ""
Retorna:
Valores LOV como uma lista de objetos ou como uma lista.
format_decimal_to_locale()
Formata um valor decimal para o formato en_US.UTF-8.
standard_value = "{0:.2f}".format(total)
formatted_value = format_decimal_to_locale(
standard_value, document_json['amount_format_locale']
)
Parâmetros:
value*
float, decimal.Decimal, str
O ID da organização à qual o documento pertence
to_locale (opcional)
string
O tipo em que os dados devem ser retornados
O padrão é 'en_US.UTF-8'
max_decimal_places (opcional)
int
ID de sub-organização opcional para filtragem
O padrão é 4
min_decimal_places (opcional)
int
O mínimo de casas decimais que devem ser consideradas
O padrão é 2
value: O valor que deve ser formatado.
to_locale (opcional): O formato no qual o valor é transformado.
max_decimal_places (opcional): O máximo de casas decimais que devem ser consideradas.
min_decimal_places (opcional): O mínimo de casas decimais que devem ser consideradas.
Retorna:
O valor formatado.
compare_values()
Compara dois valores para igualdade, lidando com vários tipos de dados.
result = compare_values(10, "10")
Parâmetros:
value1*
any
O primeiro valor a comparar
value2*
any
O segundo valor a comparar
Retorna:
True se os valores forem iguais e False se forem diferentes
create_document_task()
Cria uma tarefa, atribui-a a um usuário ou grupo, define a prioridade e, opcionalmente, envia um 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
Parâmetros:
user*
either user ID
or UserAuthentication
object
O usuário que está realizando a atualização
document_data*
dictionary
Os dados do documento contendo informações do campo
title*
string
O título da tarefa
description*
string
A descrição da tarefa
priority*
string
A prioridade da tarefa
assigned_to_user_id*
int
O id do usuário ao qual a tarefa deve ser atribuída
assigned_to_group_id*
int
O id do grupo ao qual a tarefa deve ser atribuída
send_email*
bool
Determina se um e-mail deve ser enviado ou não
Retorna:
Dict que indica se o processo foi bem-sucedido ou não
set_document_sub_org_id()
Define o sub_org_id dos dados do documento especificado.
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)
Parâmetros:
document_data*
dictionary
Os dados do documento contendo informações do campo
sub_org_id*
string
ID de sub-organização opcional para filtragem
get_user_by_id()
Obtém o usuário com o ID correspondente.
requester_mail = str(get_user_by_id(str(requester)).email.lower())
Parâmetros:
user_id*
string
O ID do usuário
Retorna:
O usuário com o ID correspondente
get_group_by_id()
Obtém o grupo com o ID correspondente.
group_name = str(get_group_by_id(assigned_to_group_id))
Parâmetros:
group_id*
string
O ID do grupo
Retorna:
O grupo com o ID correspondente
get_user_by_email()
Obtém o grupo com o ID correspondente.
user_name = str(get_user_by_email(email)
Parâmetros:
email*
any
O e-mail do usuário
Retorna:
O usuário com o e-mail correspondente
add_table_column()
Adiciona uma coluna à tabela especificada.
table = tables_dict.get("ORDER_CONFIRMATION_TABLE")
if table:
add_table_column(table, "PROMISED_DELIVERY_DATE")
Parâmetros:
table*
string
A tabela onde a coluna deve ser adicionada
col_name*
string
O nome da coluna
default_value (opcional)
any
O valor inicial para o campo
O padrão é None
get_column_value()
Obtém o valor de uma coluna especificada.
for row in table['rows']:
unit = get_column_value(row, "UNIT")
Parâmetros:
row*
string
A linha onde o valor está localizado
col_name*
string
O nome da coluna
default_value (opcional)
any
O valor inicial para o campo
O padrão é None
is_clean (opcional)
bool
Converte o valor para maiúsculas e remove quaisquer espaços extras
O padrão é False
Retorna
Retorna o valor da coluna especificada se existir; caso contrário, retorna
None
set_column_value()
Define o valor da coluna especificada. Se a coluna não existir, ela será criada.
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)
Parâmetros:
row*
string
A linha onde o valor está localizado
col_name*
string
O nome da coluna
value*
any
O valor que será definido na localização especificada
Retorna:
True se a alteração foi bem-sucedida
set_column_date_value()
Define o valor da data de uma coluna especificada.
set_column_date_value(document_data, row, "DELIVERY_DATE", "2020-12-31", add_days=2)
Parâmetros:
document_data*
dictionary
Os dados do documento contendo informações do campo
row*
string
A linha onde o valor está localizado
col_name*
string
O nome da coluna
value*
string
O valor da data a ser definido no formato ISO (por exemplo, "2020-12-31")
add_days (opcional)
int
Adiciona dias adicionais à data fornecida
O padrão é 2
skip_weekend (opcional)
bool
Ignora a data se cair no fim de semana
O padrão é False
exclude_final_days (opcional)
either string
or int
Especifica os dias a serem excluídos (0-6 ou domingo a sábado)
set_column_amount_value()
Converte o valor para string e define o valor para a coluna
Define o conteúdo da coluna para o valor
Formata o valor de acordo com o local
quantity = float(quantity) / 1000
set_column_amount_value(document_data, row, "QUANTITY", str(quantity))
Parâmetros:
document_data*
dictionary
Os dados do documento contendo informações do campo
row*
string
A linha onde o valor está localizado
column_name*
string
O nome da coluna
value*
string
O valor a ser definido para o campo (passar um número como string, por exemplo, "123456")
delete_tables()
Esta função deleta as tabelas dos dados do documento.
delete_tables(document_data)
Parâmetros:
document_data*
dictionary
Os dados do documento contendo informações do campo
restore_tables()
Esta função restaura as tabelas nos dados do documento.
restore_tables(document_data)
Parâmetros:
document_data*
dictionary
Os dados do documento contendo informações do campo
remove_rows_from_table()
Remove linhas da tabela especificada.
count = 1
start = 1
remove_rows_from_table(document_data,"INVOICE_TABLE",count,start)
Parâmetros:
document_data*
dictionary
Os dados do documento contendo informações do campo
table_name*
string
O nome da tabela
count*
int
Quantas linhas devem ser deletadas
start*
int
O ponto de partida
remove_all_rows_except_one_from_table()
Remove todas as linhas, exceto uma, da tabela especificada
count = 1
start = 1
remove_rows_from_table(document_data,"INVOICE_TABLE",count,start)
Parâmetros:
document_data*
dictionary
Os dados do documento contendo informações do campo
line_number*
int
O número da linha que não deve ser removida
Funções Internas do Python
Você também pode utilizar algumas das funções internas do python:
abs(): Retorna o valor absoluto de um número.
len(): Retorna o comprimento (número de itens) de um objeto, como uma lista ou string.
isinstance(): Verifica se um objeto é uma instância de uma classe ou tipo específico.
print(): Imprime a saída no console.
round(): Arredonda um número de ponto flutuante para um número especificado de casas decimais.
str_to_bool(): Converte uma string em um valor booleano (True ou False).
type(): Retorna o tipo de um objeto.
dict(): Cria um objeto dicionário.
list(): Cria um objeto lista.
str(): Converte um valor em uma string.
float(): Converte um valor em um número de ponto flutuante.
int(): Converte um valor em um inteiro.
Para mais detalhes, visite a documentação oficial do Python: Funções Internas.
Funções da Classe String
Você também pode usar essas funções especificamente para trabalhar com strings:
lower(): Converte todos os caracteres em uma string para minúsculas.
upper(): Converte todos os caracteres em uma string para maiúsculas.
split(): Divide uma string em uma lista com base em um delimitador (por exemplo, espaço ou vírgula).
startswith(): Verifica se uma string começa com um prefixo especificado.
endswith(): Verifica se uma string termina com um sufixo especificado.
strip(): Remove quaisquer espaços em branco no início ou no final de uma string.
Funções do Módulo Math do Python
Essas funções fazem parte do módulo math e são úteis para operações matemáticas:
floor(): Retorna o maior inteiro menor ou igual a um número dado.
ceil(): Retorna o menor inteiro maior ou igual a um número dado.
Para mais informações, confira a documentação oficial do Python: Funções do Módulo Math.
Função de Expressão Regular
re.search(): Procura por um padrão dentro de uma string e retorna a primeira correspondência.
Veja mais detalhes aqui: Documentação re.search.
Funções Externas
Aqui estão algumas funções úteis de bibliotecas externas:
deepcopy(): Cria uma cópia de um objeto, incluindo objetos aninhados (do módulo copy). Documentação Deepcopy.
levenshtein_distance(): Calcula o número de edições (inserções, exclusões, substituições) necessárias para transformar uma string em outra. Esta função está disponível na biblioteca Jellyfish.
Funções de Data e Hora
Você pode usar as seguintes funções para trabalhar com datas e horas:
strptime(): Converte uma string em um objeto datetime com base em um formato especificado.
strftime(): Formata um objeto datetime em uma string com base em um formato especificado.
Para mais informações, consulte a documentação oficial: Funções de Data e Hora.
Last updated
Was this helpful?