1 line
41 KiB
JSON
1 line
41 KiB
JSON
{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "label": "fusion_followup_engine.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L1"}, {"id": "fusion_followup_engine_fusionfollowupengine", "label": "FusionFollowupEngine", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L22"}, {"id": "fusion_followup_engine_get_overdue_for_partner", "label": "get_overdue_for_partner()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L31"}, {"id": "fusion_followup_engine_compute_followup_level", "label": "compute_followup_level()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L57"}, {"id": "fusion_followup_engine_send_followup_email", "label": "send_followup_email()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L98"}, {"id": "fusion_followup_engine_escalate_to_next_level", "label": "escalate_to_next_level()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L171"}, {"id": "fusion_followup_engine_pause_followup", "label": "pause_followup()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L188"}, {"id": "fusion_followup_engine_reset_followup", "label": "reset_followup()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L199"}, {"id": "fusion_followup_engine_snapshot_followup_history", "label": "snapshot_followup_history()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L210"}, {"id": "fusion_followup_engine_fusionfollowupengine_fetch_overdue_lines", "label": "._fetch_overdue_lines()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L238"}, {"id": "fusion_followup_engine_fusionfollowupengine_compute_risk", "label": "._compute_risk()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L249"}, {"id": "fusion_followup_engine_fusionfollowupengine_max_overdue_days_from_aging", "label": "._max_overdue_days_from_aging()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L286"}, {"id": "fusion_followup_engine_fusionfollowupengine_get_or_generate_text", "label": "._get_or_generate_text()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L301"}, {"id": "fusion_followup_engine_fusionfollowupengine_create_run", "label": "._create_run()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L352"}, {"id": "fusion_followup_engine_fusionfollowupengine_send_email", "label": "._send_email()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L364"}, {"id": "fusion_followup_engine_rationale_1", "label": "The follow-up engine \u2014 orchestrator for customer follow-ups. 7-method public AP", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L1"}, {"id": "fusion_followup_engine_rationale_32", "label": "Return aging report + risk score for a partner.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L32"}, {"id": "fusion_followup_engine_rationale_58", "label": "Return the fusion.followup.level recordset that should fire now, or empt", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L58"}, {"id": "fusion_followup_engine_rationale_99", "label": "Send a follow-up email at the given level (or auto-resolve if None). Cr", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L99"}, {"id": "fusion_followup_engine_rationale_172", "label": "Force the next-higher level than the partner's current last_level.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L172"}, {"id": "fusion_followup_engine_rationale_189", "label": "Pause follow-ups for a partner until a date (default 30 days).", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L189"}, {"id": "fusion_followup_engine_rationale_200", "label": "Reset partner's follow-up state to no_action.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L200"}, {"id": "fusion_followup_engine_rationale_211", "label": "Return audit history for a partner.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L211"}, {"id": "fusion_followup_engine_rationale_239", "label": "Fetch posted, unreconciled receivable lines for a partner.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L239"}, {"id": "fusion_followup_engine_rationale_250", "label": "Compute risk score from partner's payment history.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L250"}, {"id": "fusion_followup_engine_rationale_287", "label": "Extract longest overdue days from aging dict.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L287"}, {"id": "fusion_followup_engine_rationale_304", "label": "Cache lookup + LLM fallback.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L304"}, {"id": "fusion_followup_engine_rationale_365", "label": "Best-effort email send. Uses level's mail_template if set, else creates", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L365"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L7", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L8", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "target": "odoo", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L10", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "target": "odoo_exceptions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L11", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "target": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_services_overdue_aging_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L13", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "target": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_services_level_resolver_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L14", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "target": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_services_risk_scorer_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L15", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "target": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_services_tone_selector_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L16", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "target": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_services_followup_text_generator_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L17", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "target": "fusion_followup_engine_fusionfollowupengine", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L22", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "target": "fusion_followup_engine_get_overdue_for_partner", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L31", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "target": "fusion_followup_engine_compute_followup_level", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L57", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "target": "fusion_followup_engine_send_followup_email", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L98", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "target": "fusion_followup_engine_escalate_to_next_level", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L171", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "target": "fusion_followup_engine_pause_followup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L188", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "target": "fusion_followup_engine_reset_followup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L199", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "target": "fusion_followup_engine_snapshot_followup_history", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L210", "weight": 1.0}, {"source": "fusion_followup_engine_fusionfollowupengine", "target": "fusion_followup_engine_fusionfollowupengine_fetch_overdue_lines", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L238", "weight": 1.0}, {"source": "fusion_followup_engine_fusionfollowupengine", "target": "fusion_followup_engine_fusionfollowupengine_compute_risk", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L249", "weight": 1.0}, {"source": "fusion_followup_engine_fusionfollowupengine", "target": "fusion_followup_engine_fusionfollowupengine_max_overdue_days_from_aging", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L286", "weight": 1.0}, {"source": "fusion_followup_engine_fusionfollowupengine", "target": "fusion_followup_engine_fusionfollowupengine_get_or_generate_text", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L301", "weight": 1.0}, {"source": "fusion_followup_engine_fusionfollowupengine", "target": "fusion_followup_engine_fusionfollowupengine_create_run", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L352", "weight": 1.0}, {"source": "fusion_followup_engine_fusionfollowupengine", "target": "fusion_followup_engine_fusionfollowupengine_send_email", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L364", "weight": 1.0}, {"source": "fusion_followup_engine_get_overdue_for_partner", "target": "fusion_followup_engine_fusionfollowupengine_fetch_overdue_lines", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L35", "weight": 1.0}, {"source": "fusion_followup_engine_get_overdue_for_partner", "target": "fusion_followup_engine_fusionfollowupengine_compute_risk", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L43", "weight": 1.0}, {"source": "fusion_followup_engine_compute_followup_level", "target": "fusion_followup_engine_fusionfollowupengine_fetch_overdue_lines", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L67", "weight": 1.0}, {"source": "fusion_followup_engine_send_followup_email", "target": "fusion_followup_engine_compute_followup_level", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L112", "weight": 1.0}, {"source": "fusion_followup_engine_send_followup_email", "target": "fusion_followup_engine_fusionfollowupengine_create_run", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L117", "weight": 1.0}, {"source": "fusion_followup_engine_send_followup_email", "target": "fusion_followup_engine_get_overdue_for_partner", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L124", "weight": 1.0}, {"source": "fusion_followup_engine_send_followup_email", "target": "fusion_followup_engine_fusionfollowupengine_get_or_generate_text", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L133", "weight": 1.0}, {"source": "fusion_followup_engine_send_followup_email", "target": "fusion_followup_engine_fusionfollowupengine_max_overdue_days_from_aging", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L136", "weight": 1.0}, {"source": "fusion_followup_engine_send_followup_email", "target": "fusion_followup_engine_fusionfollowupengine_send_email", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L154", "weight": 1.0}, {"source": "fusion_followup_engine_escalate_to_next_level", "target": "fusion_followup_engine_send_followup_email", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L185", "weight": 1.0}, {"source": "fusion_followup_engine_rationale_1", "target": "users_gurpreet_github_odoo_modules_fusion_accounting_followup_models_fusion_followup_engine_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L1", "weight": 1.0}, {"source": "fusion_followup_engine_rationale_32", "target": "fusion_followup_engine_fusionfollowupengine_get_overdue_for_partner", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L32", "weight": 1.0}, {"source": "fusion_followup_engine_rationale_58", "target": "fusion_followup_engine_fusionfollowupengine_compute_followup_level", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L58", "weight": 1.0}, {"source": "fusion_followup_engine_rationale_99", "target": "fusion_followup_engine_fusionfollowupengine_send_followup_email", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L99", "weight": 1.0}, {"source": "fusion_followup_engine_rationale_172", "target": "fusion_followup_engine_fusionfollowupengine_escalate_to_next_level", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L172", "weight": 1.0}, {"source": "fusion_followup_engine_rationale_189", "target": "fusion_followup_engine_fusionfollowupengine_pause_followup", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L189", "weight": 1.0}, {"source": "fusion_followup_engine_rationale_200", "target": "fusion_followup_engine_fusionfollowupengine_reset_followup", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L200", "weight": 1.0}, {"source": "fusion_followup_engine_rationale_211", "target": "fusion_followup_engine_fusionfollowupengine_snapshot_followup_history", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L211", "weight": 1.0}, {"source": "fusion_followup_engine_rationale_239", "target": "fusion_followup_engine_fusionfollowupengine_fetch_overdue_lines", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L239", "weight": 1.0}, {"source": "fusion_followup_engine_rationale_250", "target": "fusion_followup_engine_fusionfollowupengine_compute_risk", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L250", "weight": 1.0}, {"source": "fusion_followup_engine_rationale_287", "target": "fusion_followup_engine_fusionfollowupengine_max_overdue_days_from_aging", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L287", "weight": 1.0}, {"source": "fusion_followup_engine_rationale_304", "target": "fusion_followup_engine_fusionfollowupengine_get_or_generate_text", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L304", "weight": 1.0}, {"source": "fusion_followup_engine_rationale_365", "target": "fusion_followup_engine_fusionfollowupengine_send_email", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L365", "weight": 1.0}], "raw_calls": [{"caller_nid": "fusion_followup_engine_get_overdue_for_partner", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L33"}, {"caller_nid": "fusion_followup_engine_get_overdue_for_partner", "callee": "today", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L34"}, {"caller_nid": "fusion_followup_engine_get_overdue_for_partner", "callee": "compute_aging", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L36"}, {"caller_nid": "fusion_followup_engine_get_overdue_for_partner", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L46"}, {"caller_nid": "fusion_followup_engine_get_overdue_for_partner", "callee": "to_dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L47"}, {"caller_nid": "fusion_followup_engine_get_overdue_for_partner", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L53"}, {"caller_nid": "fusion_followup_engine_compute_followup_level", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L60"}, {"caller_nid": "fusion_followup_engine_compute_followup_level", "callee": "today", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L63"}, {"caller_nid": "fusion_followup_engine_compute_followup_level", "callee": "today", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L66"}, {"caller_nid": "fusion_followup_engine_compute_followup_level", "callee": "compute_aging", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L70"}, {"caller_nid": "fusion_followup_engine_compute_followup_level", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L79"}, {"caller_nid": "fusion_followup_engine_compute_followup_level", "callee": "FollowupLevelSpec", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L86"}, {"caller_nid": "fusion_followup_engine_compute_followup_level", "callee": "resolve_level", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L91"}, {"caller_nid": "fusion_followup_engine_compute_followup_level", "callee": "filtered", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L95"}, {"caller_nid": "fusion_followup_engine_send_followup_email", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L102"}, {"caller_nid": "fusion_followup_engine_send_followup_email", "callee": "today", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L105"}, {"caller_nid": "fusion_followup_engine_send_followup_email", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L107"}, {"caller_nid": "fusion_followup_engine_send_followup_email", "callee": "select_tone", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L128"}, {"caller_nid": "fusion_followup_engine_send_followup_email", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L150"}, {"caller_nid": "fusion_followup_engine_send_followup_email", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L155"}, {"caller_nid": "fusion_followup_engine_send_followup_email", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L156"}, {"caller_nid": "fusion_followup_engine_send_followup_email", "callee": "now", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L159"}, {"caller_nid": "fusion_followup_engine_send_followup_email", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L162"}, {"caller_nid": "fusion_followup_engine_send_followup_email", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L163"}, {"caller_nid": "fusion_followup_engine_send_followup_email", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L163"}, {"caller_nid": "fusion_followup_engine_escalate_to_next_level", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L173"}, {"caller_nid": "fusion_followup_engine_escalate_to_next_level", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L178"}, {"caller_nid": "fusion_followup_engine_pause_followup", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L190"}, {"caller_nid": "fusion_followup_engine_pause_followup", "callee": "today", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L191"}, {"caller_nid": "fusion_followup_engine_pause_followup", "callee": "timedelta", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L191"}, {"caller_nid": "fusion_followup_engine_pause_followup", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L192"}, {"caller_nid": "fusion_followup_engine_pause_followup", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L196"}, {"caller_nid": "fusion_followup_engine_reset_followup", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L201"}, {"caller_nid": "fusion_followup_engine_reset_followup", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L202"}, {"caller_nid": "fusion_followup_engine_snapshot_followup_history", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L212"}, {"caller_nid": "fusion_followup_engine_snapshot_followup_history", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L214"}, {"caller_nid": "fusion_followup_engine_snapshot_followup_history", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L216"}, {"caller_nid": "fusion_followup_engine_snapshot_followup_history", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L219"}, {"caller_nid": "fusion_followup_engine_snapshot_followup_history", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L221"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_fetch_overdue_lines", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L240"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_fetch_overdue_lines", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L241"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_compute_risk", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L251"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_compute_risk", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L252"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_compute_risk", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L257"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_compute_risk", "callee": "today", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L262"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_compute_risk", "callee": "sum", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L270"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_compute_risk", "callee": "sum", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L273"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_compute_risk", "callee": "mapped", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L273"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_compute_risk", "callee": "abs", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L275"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_compute_risk", "callee": "score_partner", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L277"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_max_overdue_days_from_aging", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L288"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_max_overdue_days_from_aging", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L292"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_max_overdue_days_from_aging", "callee": "max", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L296"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_max_overdue_days_from_aging", "callee": "max", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L298"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_get_or_generate_text", "callee": "lookup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L306"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_get_or_generate_text", "callee": "action_increment_use", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L313"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_get_or_generate_text", "callee": "bool", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L318"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_get_or_generate_text", "callee": "generate_followup_text", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L323"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_get_or_generate_text", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L333"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_get_or_generate_text", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L333"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_get_or_generate_text", "callee": "compute_fingerprint", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L336"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_get_or_generate_text", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L343"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_get_or_generate_text", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L344"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_get_or_generate_text", "callee": "debug", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L347"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_create_run", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L353"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_create_run", "callee": "update", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L361"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_create_run", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L362"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_send_email", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L368"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_send_email", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L368"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_send_email", "callee": "send_mail", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L370"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_send_email", "callee": "replace", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L372"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_send_email", "callee": "replace", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L372"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_send_email", "callee": "send", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L373"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_send_email", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L373"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_send_email", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L373"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_send_email", "callee": "format", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L375"}, {"caller_nid": "fusion_followup_engine_fusionfollowupengine_send_email", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_accounting_followup/models/fusion_followup_engine.py", "source_location": "L379"}]} |