From b57fae393e472d158d29b7953adbe13a72ce0c23 Mon Sep 17 00:00:00 2001 From: "Andrey Cunh@" Date: Fri, 6 Mar 2026 17:07:26 -0300 Subject: [PATCH] att faturamento pedido --- .../installments_reader.cpython-313.pyc | Bin 0 -> 38943 bytes installments_reader.py | 25 +++++++++++++----- 2 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 __pycache__/installments_reader.cpython-313.pyc diff --git a/__pycache__/installments_reader.cpython-313.pyc b/__pycache__/installments_reader.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a973ba2f70bdf0594948197e353fc634f5348e8c GIT binary patch literal 38943 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 U8&YI_q}2XS2VhB=O+oel1}JI-sQ>@~ literal 0 HcmV?d00001 diff --git a/installments_reader.py b/installments_reader.py index bed529b..9547fe7 100644 --- a/installments_reader.py +++ b/installments_reader.py @@ -5,7 +5,7 @@ import os import re import time from dataclasses import dataclass -from datetime import date +from datetime import date, timedelta from typing import Any, Dict, List, Optional from urllib.parse import urlencode @@ -453,6 +453,9 @@ WHERE DocPedidoId = ? AND InstallmentCode NOT IN ({placeholders}) def main() -> None: today = date.today() + last_days_env = os.getenv("LAST_N_DAYS", "5").strip() + last_n_days = int(last_days_env) if last_days_env else None + rolling_start = (today - timedelta(days=last_n_days)).isoformat() if last_n_days is not None else None default_start = date(today.year, 1, 1).isoformat() default_end = today.isoformat() start_date_env = os.getenv("START_INSTALLMENT_CHANGE_DATE") @@ -506,6 +509,8 @@ def main() -> None: print(f"[info] incremental ativo com watermark em {watermark_file}") else: print("[info] incremental desativado") + if last_n_days is not None: + print(f"[info] janela movel ativa: ultimos {last_n_days} dias ({rolling_start}..{end_date})") authorized: list[int] = [] unauthorized: list[int] = [] @@ -513,16 +518,20 @@ def main() -> None: failed: Dict[int, str] = {} def process_store(mediator_code: int) -> Dict[str, Any]: - store_start_date = start_date_fixed - if not store_start_date: - if incremental_mode: - store_start_date = watermark.get(str(mediator_code), default_start) - else: - store_start_date = default_start + if rolling_start: + store_start_date = rolling_start + else: + store_start_date = start_date_fixed + if not store_start_date: + if incremental_mode: + store_start_date = watermark.get(str(mediator_code), default_start) + else: + store_start_date = default_start local_session = requests.Session() local_session.trust_env = False local_auth = Auth(local_session) + store_bearer = local_auth.get_bearer() try: print( @@ -608,6 +617,8 @@ def main() -> None: group_session = requests.Session() group_session.trust_env = False group_auth = Auth(group_session) + # Reutiliza o token da loja para evitar nova ida ao endpoint /api/tokens por grupo. + group_auth.override_bearer = store_bearer group_page = first_page all_group_installments: List[Dict[str, Any]] = [] group_total = 0