Statement run ............. The :term:`Statement Run` can be seen as the grouping of information with which you intend to generate a report. The statement can be generated according to the follow filters: - Artist - DSP - Periods - Salesfiles The report will contain the following information: *Pending....* General flow ==== .. mermaid:: sequenceDiagram actor User participant FrontEnd participant OAS participant Glider participant S3 participant MongoDB User ->> FrontEnd : Create statement run activate FrontEnd activate OAS FrontEnd ->> OAS : Create statement Note over FrontEnd, OAS: /api/statement_run/ OAS -->> FrontEnd: Return statement id rect rgb(191, 223, 255) User ->> FrontEnd : Upload currencies Note right of OAS: /api/statement_run/{id}/currencies/ FrontEnd ->> OAS: Send currencies OAS -->> OAS: Add currency exceptions to salesfile information OAS -->> FrontEnd: Return status ok end rect rgb(245, 223, 255) User ->> FrontEnd : Upload currency excetions Note right of OAS: /api/statement_run/{id}/currencies_exception/ FrontEnd ->> OAS: Send currencies OAS -->> OAS: Add currency exceptions to salesfile information OAS -->> FrontEnd: Return status ok end User ->> FrontEnd: Upload file(s) loop ProcessFile FrontEnd ->> OAS: Create file Note over FrontEnd, OAS: /api/files/salesfiles/ OAS -->> OAS: Create file with status INITIALIZED OAS -->> FrontEnd: Response status ok FrontEnd ->> OAS: Send id file OAS -->> OAS : Relate file with statement run Note over FrontEnd, OAS: /api/statement_run/{statement_id}/add-salesfile/
file_id how parameter OAS -->> FrontEnd: Return status OK Note over FrontEnd,OAS: In this moment the files is asociated
with statement Run FrontEnd ->> OAS: Request presigned URL OAS ->> S3: Generate presigned URL S3 -->> OAS: Return presigned URL OAS -->> FrontEnd: Resonse presigned url deactivate OAS FrontEnd ->> S3: Send File S3 -->> FrontEnd: Status Ok activate OAS Note over FrontEnd, OAS: In this step start processing FrontEnd ->> OAS: Start proces cleaning OAS -->> OAS: update status file to UPlOADED activate MongoDB OAS ->> MongoDB: Save initial information MongoDB -->> OAS: Return response OK deactivate MongoDB OAS --> OAS: update status file CLEANING activate Glider OAS ->> Glider: Activate Cleaning Module Glider -->> Glider: Module Clieaning Glider -->> OAS: Call webhook with success response Note right of OAS: process continue if call to weebhook is OK deactivate Glider OAS -->> OAS: Change status file to CLEANED activate Glider OAS ->> Glider: Activate IMPORTER MODULE Glider -->> Glider: Process information activate MongoDB Glider ->> MongoDB: Save snapshot and sales MongoDB -->> Glider: Return response deactivate MongoDB Glider -->> OAS: Call webhook with success response activate MongoDB OAS ->> MongoDB: Retrieve Snapshots generated MongoDB -->> OAS: Response Data deactivate MongoDB OAS -->> OAS: Update status to PROCESSED end deactivate Glider deactivate OAS activate User activate OAS User ->> FrontEnd: Downloda report Note over User, FrontEnd: Only if status is PROCESSED FrontEnd ->> OAS: Request report OAS -->> FrontEnd: Return report FrontEnd -->> User: Return report deactivate OAS deactivate User deactivate FrontEnd .. **Remove next section and pass in another** .. In the first phase for the OTTO product, the goal is to implement the generation of reports by period, which will have the following flow. .. - Create statement run ID .. - Upload asociate sales files with statement run .. - Upload currencies .. - Upload :term:`currencies exception` .. - Call the aws importer moudule .. - Call the aws statement module with period specific