Home

Línea Datasul

Páginas filhas
  • LUY702ZA - API Generación - Ventas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Button
TextoVoltar
Linkhttps://tdn.totvs.com/pages/viewpage.action?pageId=929926296


API para generación de gráficos


Nombre físico: prgfin/luy/luy702za.py

Versión de integración: 001

Objetivo: 

Crear el objeto de negocio que se utilizará para generar una visión de datos que permita verificar la información del Listado en detalle de las Ventas y exportar en el formato deseado.

Prerrequisitos: 

No se aplica.


Consideraciones generales


  • Se pasan como parámetros a la API, como Input el mes y el año de la declaración y como Output el archivo con las declaraciones y la tabla temporal de errores.
  • La visualización de la información de la API se realiza a través de la ejecución de la API prgfin/luy/luy702za.py.


Parámetros de entrada 


Temp-table tt-atributos: En la Temp-Table tt_dados_formulario, se definen las características generales del formulario de presentación para cumplir con la legislación F2181.


Descripción de los campos 

TEMP-TABLE tt_dados_formulario

Atributo

Tipo

Formato

Valor inicial

Índice

ttv_num_form

Integer


1

ttv_cod_periodo

Character



ttv_cod_docto_pessoa

Character



ttv_cod_dat_emis_docto

Character



ttv_cod_rubr

Character



ttv_val_operac

Decimal




Atributo

Descripción

ttv_num_form

Identifica el número de formulario de la declaración.

ttv_cod_periodo

Período.

ttv_cod_docto_pessoa

Documento de la persona.

ttv_cod_dat_emis_docto

Fecha de emisión del documento.

ttv_cod_rubr

Rubro.

ttv_val_operac

Valor total de la operación.



Temp-Table tt_cliente_F2181_acr: En la Temp-Table tt_cliente_F2181_acr se definen informaciones referidas al cliente del documento.

TEMP-TABLE tt-points

Atributo

Tipo

Formato

Valor inicial

Índice

tta_cod_empresa

Character



tta_cdn_cliente

Integer


1

tta_nom_pessoa

Character


“”


tta_cod_id_feder


Character




Atributo

Descripción

tta_cod_empresa

Código de la empresa.

tta_cdn_fornecedor

Número del cliente.

tta_nom_pessoa

Nombre de la persona.

tta_cod_id_feder

Documento.



Temp-Table tt_impostos_F2181_acr: En la Temp-Table tt_impostos_F2181_acr se definen los impuestos vinculados a los documentos.

 

TEMP-TABLE tt_impostos_F2181_acr

Atributo

Tipo

Formato

Valor inicial

Índice

tta_cod_estab

Character



tta_num_id_tit_acr

Integer


1

tta_cod_pais

Character



tta_cod_unid_federac

Integer



tta_cod_imposto

Character



tta_cod_classif_impto

Character


0


tta_ind_tip_impto

Character




tta_ind_clas_impto

Character




tta_ind_tip_tax

Character




ttv_val_base

Decimal




ttv_val_imposto 

Decimal




Atributo

Descripción

tta_cod_estab

Sucursal.

tta_num_id_tit_ap

Token título.

tta_cod_pais

País.

tta_cod_unid_federac

Estado/Provincia/Región

tta_cod_imposto

Impuesto.

tta_cod_classif_impto

Código de la clasificación del impuesto

tta_ind_tip_impto

Tipo de impuesto.

tta_ind_clas_impto

Clasificación de impuesto.

tta_ind_tip_tax

Tipo de tasa.

ttv_val_base

Valor tributable.

ttv_val_imposto 

Valor de impuesto.



Temp-Table tt_rubros_F2181_acr:Informaciones referentes a los rubros de los clientes.

TEMP-TABLE tt_rubros_F2181_acr

Atributo

Tipo

Formato

Valor inicial

Índice

ttv_cod_rubr

Character


1

tta_cod_estab

Character



tta_num_id_tit_ap

Integer



ttv_val_operac_rubr 

Decimal


0


Atributo

Descripción

ttv_cod_rubr

Identifica el código del rubro.

tta_cod_estab

Sucursal.

tta_num_id_tit_ap

Token del título.

ttv_val_operac_rubr 

Valor total de la operación por rubro.




Temp-table tt_titulo_F2181_acr: Informaciones referentes a los títulos vinculados en la declaración.

TEMP-TABLE tt_titulo_F2181_acr


Atributo

Tipo

Formato

Valor inicial

Índice primario

Índice secundario

tta_cdn_cliente 

Integer




tta_cod_estab

Character



tta_num_id_tit_acr





tta_cod_espec_docto





tta_cod_ser_docto





tta_cod_tit_acr





tta_cod_parcela





tta_ind_tip_espec_docto






tta_dat_emis_docto






tta_cod_indic_econ






tta_val_origin_tit_acr






ttv_val_iva_basic






ttv_val_iva_min






ttv_val_isento






Atributo

Descripción

tta_cdn_cliente 

Cliente del título.

tta_cod_estab

Sucursal.

tta_num_id_tit_acr

Token del título.

tta_cod_espec_docto

Clase.

tta_cod_ser_docto

Serie.

tta_cod_tit_acr

Código del título.

tta_cod_parcela

Partida.

tta_ind_tip_espec_docto

Tipo de clase.

tta_dat_emis_docto

Fecha de emisión

tta_cod_indic_econ

Moneda.

tta_val_origin_tit_acr

Valor original del título.

ttv_val_iva_basic

Valor total IVA Tasa básica.

ttv_val_iva_min

Valor total IVA Tasa mínima.

ttv_val_isento

Valor total exento.


Ejecución


Sintaxe:

Bloco de código
languageruby
RUN prgfin/luy/luy702za.py PERSISTENT SET v_hdl_api (INPUT mes,
                                                     INPUT ano).
RUN pi_obter_detalhes_acr_f2181 IN v_hdl_api (output table tt_cliente_f2181_acr,
                                              output table tt_rubros_F2181_acr,
                                              output table tt_titulo_F2181_acr,
                                              output table tt_impostos_F2181_acr,
                                              output table tt_erros_api).
Bloco de código
languageruby
RUN prgfin/luy/luy702za.py PERSISTENT SET v_hdl_api (INPUT mes,
                                                     INPUT ano).
RUN pi_main_formulario_2181 IN v_hdl_api (output v_des_arquivo,
                                          output table tt_erros_api).

En caso de error en las validaciones mencionadas anteriormente, el error se devolverá por medio de la temp-table ttt_erros_api.

Si los datos fueran aceptados, la API devolverá las informaciones para la generación del Formulario 2181 cuando se llame a la procedure pi_main_formulario_2181 o devolverá los detalles de los títulos e impuestos, si fuera llamada la procedure pi_obter_detalhes_acr_f2181.


Expandir
titleHaga clic aquí para visualizar...
Bloco de código
languageruby
def var v_hdl_api as Handle format ">>>>>>9":U no-undo.
def var v_des_arquivo as character no-undo.

RUN prgfin/luy/luy702za.py PERSISTENT SET v_hdl_api (INPUT 2,
                                                     INPUT 2025).
RUN pi_main_formulario_2181 IN v_hdl_api (output v_des_arquivo,
                                          output table tt_erros_api).
DELETE PROCEDURE v_hdl_api.
Bloco de código
languageruby
def var v_hdl_api as Handle format ">>>>>>9":U no-undo.
def var v_des_arquivo as character no-undo.

RUN prgfin/luy/luy702za.py PERSISTENT SET v_hdl_api (INPUT 2,
                                                     INPUT 2025).
RUN pi_obter_detalhes_acr_f2181 IN v_hdl_api (output table tt_cliente_f2181_acr,
                                              output table tt_rubros_F2181_acr,
                                              output table tt_titulo_F2181_acr,
                                              output table tt_impostos_F2181_acr,
                                              output table tt_erros_api).
DELETE PROCEDURE v_hdl_api.

for each tt_titulo_F2181_acr:
    if not can-find(first tt_impostos_F2181_acr
        where tt_impostos_F2181_acr.tta_cod_estab     = tt_titulo_F2181_acr.tta_cod_estab
          and tt_impostos_F2181_acr.tta_num_id_tit_acr = tt_titulo_F2181_acr.tta_num_id_tit_acr) then
    do:
        create tt_impostos_F2181_acr.
        assign tt_impostos_F2181_acr.tta_cod_estab     = tt_titulo_F2181_acr.tta_cod_estab
               tt_impostos_F2181_acr.tta_num_id_tit_acr = tt_titulo_F2181_acr.tta_num_id_tit_acr.  
    end.
end.

def stream s1.
output stream s1 to C:\tmp\Detalhes_F2181.csv convert target "ISO8859-1".
put stream s1 unformatted "Fornecedor;Nome;Titulo;Rubro;Vl Rubro;Vl Original;Vl Taxa Basica; Vl Taxa Minima; Vl Isento ; Imposto;Vl Base;Vl Imposto " skip.

for each tt_titulo_F2181_acr,
    each tt_rubros_F2181_acr
    where tt_rubros_F2181_acr.tta_cod_estab     = tt_titulo_F2181_acr.tta_cod_estab
      and tt_rubros_F2181_acr.tta_num_id_tit_acr = tt_titulo_F2181_acr.tta_num_id_tit_acr,    
    first tt_cliente_F2181_acr     where tt_cliente_F2181_acr.tta_cdn_cliente = tt_titulo_F2181_acr.tta_cdn_cliente,
    each tt_impostos_F2181_acr     where tt_impostos_F2181_acr.tta_cod_estab     = tt_titulo_F2181_acr.tta_cod_estab
      and tt_impostos_F2181_acr.tta_num_id_tit_acr = tt_titulo_F2181_acr.tta_num_id_tit_acr:
    
    put stream s1 unformatted
    string(tt_cliente_F2181_acr.tta_cdn_cliente)                                      + ";" +
    tt_cliente_F2181_acr.tta_nom_pessoa                                                  + ";" +
    tt_titulo_F2181_acr.tta_cod_estab + '/' +  tt_titulo_F2181_acr.tta_cod_espec_docto  + '/' + 
    tt_titulo_F2181_acr.tta_cod_ser_docto + '/' + tt_titulo_F2181_acr.tta_cod_tit_acr    + '/' + 
    tt_titulo_F2181_acr.tta_cod_parcela                                                 + ";" +
    tt_rubros_F2181_acr.ttv_cod_rubr                                                    + ";" +
    string(tt_rubros_F2181_acr.ttv_val_operac_rubr)                                     + ";" +
    string(tt_titulo_F2181_acr.tta_val_origin_tit_ap)                                   + ";" +
    string(tt_titulo_F2181_acr.ttv_val_iva_basic)                                       + ";" +
    string(tt_titulo_F2181_acr.ttv_val_iva_min)                                         + ";" +     
    string(tt_titulo_F2181_acr.ttv_val_isento)                                          + ";" +   
    tt_impostos_F2181_acr.tta_cod_pais + '/' + tt_impostos_F2181_acr.tta_cod_unid_federac + '/' + 
    tt_impostos_F2181_acr.tta_cod_imposto                                               + ";" +
    string(tt_impostos_F2181_acr.ttv_val_base)                                          + ";" +                                   
    string(tt_impostos_F2181_acr.ttv_val_imposto) 
    skip.  
    
end.
output stream s1 close.





Parámetros de salida


Si la devolución fuera NOK, todos los errores encontrados se devolverán en la tabla Temp-Table tt_erros_api:

La tt-erros es una tabla de devolución de datos referentes a los errores encontrados en el manejo de los datos de las tablas tablas de entrada. La tt-erros devuelve los datos por medio de un registro que contiene el código del error y su descripción.

Obs.: Después de la llamada realizada a la API, es imprescindible tratar los errores devueltos, si existieran.

TEMP-TABLE tt_erros_api

Atributo

Tipo

Formato

Valor inicial

ttv_num_erro

Integer



ttv_des_mensagem

Character



ttv_des_ajuda

Character



ttv_row_id

Rowid



Atributo

Descripción

ttv_num_erro

Número del erro. Secuencia dentro de la temp-table.

ttv_des_mensagem

Descripción del error.

ttv_des_ajuda

Descripción ayuda.

ttv_row_id

Rowid.