• Mahmoud Aglan's avatar
    feat(accounting): connection centre — every money path, what it needs, and split-anything · ac28a438
    Mahmoud Aglan authored
    Answers the question the finance review will actually ask: "we know it is not
    connected — how do we connect it, from inside the system, now?"
    
    Three parts.
    
    1. مركز التوصيل (/accounting/revenue-mapping/connections)
       Every money path in the ERP in one list, split by WHAT IT NEEDS rather than by
       severity, because that decides who can close it:
    
         - تُوصَّل الآن من الشاشة — the module already fires an event carrying the
           amount, so mapping the accounts is the whole fix. Has a button.
         - تحتاج تعديل برمجي — the module writes the money to its own table and fires
           nothing. Mapping would change nothing, so there is deliberately NO button
           and the row says exactly what is missing. A button here would be a lie.
         - موصولة — with the current split shown inline and a rewire button.
    
       Each row reads the amount sitting in that module's own table live, so every gap
       is a number instead of an adjective.
    
    2. Rewire and split anything, including already-connected paths
       The connected list shows each current split and offers "قسّم على حسابات" when a
       path still posts to a single account. Any line can be a percentage, a flat
       amount, or the remainder — so "30% of the 150,000 to this fund, 10% to that one,
       the rest to membership revenue" is three lines and a save. Saving takes a new
       version with an effective date; posted entries never move.
    
    3. Create the destination account without leaving the screen
       A fund that does not exist yet used to mean leaving for the chart of accounts
       and losing the room. "+ حساب جديد" creates the leaf under a chosen header,
       takes the next free code, inherits type and nature, and drops straight into the
       line. Refuses to hang a child off a posting account, which would strand its
       balance.
    
    Also seeds the club fund accounts a distribution rule needs to point at — sports
    support, member welfare, martyrs stamp (already priced at 5 EGP in the service
    catalogue with nowhere to post it), federation share, facilities development.
    They are liabilities, not revenue: money earmarked for a fund is held on that
    fund's behalf, and posting it to revenue would overstate income.
    
    And 27 previously invisible paths are now catalogued with an honest wiring_status,
    a plain-Arabic note on what is missing, and a pointer to the table holding the
    money — so the screen shows the whole picture instead of only the working parts.
    Co-Authored-By: 's avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
    ac28a438
Name
Last commit
Last update
..
data Loading commit data...
Phase_02_001_seed_default_roles.php Loading commit data...
Phase_02_002_seed_super_admin.php Loading commit data...
Phase_03_001_seed_branches.php Loading commit data...
Phase_03_002_seed_governorates.php Loading commit data...
Phase_03_003_seed_countries.php Loading commit data...
Phase_03_004_seed_qualifications.php Loading commit data...
Phase_05_001_import_departments_and_titles.php Loading commit data...
Phase_05_001_seed_all_business_rules.php Loading commit data...
Phase_05_002_import_employees_from_registry.php Loading commit data...
Phase_05_002_seed_pricing_configs.php Loading commit data...
Phase_05_003_seed_performance_criteria.php Loading commit data...
Phase_05_003_seed_service_catalog.php Loading commit data...
Phase_05_004_import_work_schedules.php Loading commit data...
Phase_05_005_seed_shift_definitions.php Loading commit data...
Phase_06_001_seed_field_types.php Loading commit data...
Phase_06_002_seed_form_schemas.php Loading commit data...
Phase_07_001_seed_workflow_definitions.php Loading commit data...
Phase_100_001_seed_board_offer_tiers.php Loading commit data...
Phase_100_001_seed_revenue_posting_engine.php Loading commit data...
Phase_100_002_grant_revenue_mapping_permissions.php Loading commit data...
Phase_100_002_seed_sheraton_offers_2026.php Loading commit data...
Phase_101_001_provision_employee_accounts.php Loading commit data...
Phase_101_001_seed_full_cycle_accounts.php Loading commit data...
Phase_101_002_seed_full_cycle_streams.php Loading commit data...
Phase_102_001_rebuild_balance_caches.php Loading commit data...
Phase_102_002_seed_payroll_deduction_pointers.php Loading commit data...
Phase_102_003_seed_cron_disabled_flag.php Loading commit data...
Phase_103_001_seed_unconnected_streams.php Loading commit data...
Phase_103_002_seed_club_funds.php Loading commit data...
Phase_105_001_fix_role_access_gaps.php Loading commit data...
Phase_11_001_seed_payment_methods.php Loading commit data...
Phase_15_001_seed_sms_templates.php Loading commit data...
Phase_15_002_seed_report_definitions.php Loading commit data...
Phase_16_001_seed_branding_config.php Loading commit data...
Phase_17_001_seed_sport_disciplines.php Loading commit data...
Phase_17_002_seed_facilities.php Loading commit data...
Phase_17_003_seed_sports_business_rules.php Loading commit data...
Phase_17_004_seed_sports_service_catalog.php Loading commit data...
Phase_18_001_seed_academies_and_levels.php Loading commit data...
Phase_19_001_seed_player_form_schemas.php Loading commit data...
Phase_19_002_seed_sports_report_definitions.php Loading commit data...
Phase_19_003_seed_sports_sms_templates.php Loading commit data...
Phase_22_001_seed_activity_pricing.php Loading commit data...
Phase_25_001_seed_inventory_categories.php Loading commit data...
Phase_25_002_seed_inventory_business_rules.php Loading commit data...
Phase_25_003_seed_default_warehouses.php Loading commit data...
Phase_28_001_seed_hr_workflow_definitions.php Loading commit data...
Phase_28_002_seed_hr_leave_types.php Loading commit data...
Phase_28_003_seed_hr_system_config.php Loading commit data...
Phase_28_004_seed_hr_salary_structure.php Loading commit data...
Phase_28_005_seed_hr_holidays.php Loading commit data...
Phase_28_006_seed_hr_work_schedules.php Loading commit data...
Phase_28_007_seed_hr_sms_templates.php Loading commit data...
Phase_33_001_seed_chart_of_accounts.php Loading commit data...
Phase_33_020_seed_journal_types.php Loading commit data...
Phase_34_001_seed_procurement_workflow_definitions.php Loading commit data...
Phase_34_002_seed_procurement_config.php Loading commit data...
Phase_36_001_seed_expanded_chart_of_accounts.php Loading commit data...
Phase_36_002_seed_fiscal_year.php Loading commit data...
Phase_36_003_seed_sync_gl_from_existing_data.php Loading commit data...
Phase_38_001_seed_cashier_permissions.php Loading commit data...
Phase_39_001_seed_form_session_rules.php Loading commit data...
Phase_39_001_seed_support_permissions.php Loading commit data...
Phase_40_001_seed_master_document_compliance.php Loading commit data...
Phase_41_001_seed_unification_rules.php Loading commit data...
Phase_41_002_seed_complete_service_catalog.php Loading commit data...
Phase_42_001_seed_egyptian_chart_of_accounts.php Loading commit data...
Phase_43_001_seed_full_chart_of_accounts.php Loading commit data...
Phase_44_001_seed_trial_balance_2024_2025.php Loading commit data...
Phase_45_001_seed_complete_accounting_data.php Loading commit data...
Phase_46_001_seed_subscription_rates_and_prices.php Loading commit data...
Phase_50_001_seed_alert_rules.php Loading commit data...
Phase_52_001_seed_facility_pricing_rules.php Loading commit data...
Phase_56_001_seed_movement_types.php Loading commit data...
Phase_63_012_seed_notification_triggers.php Loading commit data...
Phase_64_001_seed_seasonal_pricing_rules.php Loading commit data...
Phase_70_001_seed_swimming_pool.php Loading commit data...
Phase_70_002_seed_pool_grid_zones.php Loading commit data...
Phase_70_003_seed_full_sports_activity.php Loading commit data...
Phase_71_001_seed_expanded_roles.php Loading commit data...
Phase_71_002_seed_permission_dependencies.php Loading commit data...
Phase_72_001_seed_treasuries.php Loading commit data...
Phase_72_002_seed_treasury_permissions.php Loading commit data...
Phase_73_001_seed_locker_and_referral_permissions.php Loading commit data...
Phase_75_001_seed_updated_roles.php Loading commit data...
Phase_80_001_seed_all_academy_pricing.php Loading commit data...
Phase_80_002_seed_additional_disciplines.php Loading commit data...
Phase_86_001_populate_program_pricing_from_groups.php Loading commit data...
Phase_88_001_seed_tournament_bot_players.php Loading commit data...
Phase_95_001_seed_rental_vat_rule.php Loading commit data...
Phase_96_001_seed_rental_bank_rate_rule.php Loading commit data...
Phase_96_002_seed_pool_lane_pricing.php Loading commit data...
Phase_96_003_seed_swimming_academy_programs.php Loading commit data...
Phase_96_004_seed_swimming_teams_programs.php Loading commit data...
Phase_99_003_seed_regulatory_discounts.php Loading commit data...