Skip to main content

Accounting 1 vs Accounting 2 — différences réelles

But de cette page

ACC1 et ACC2 partagent le même moteur By Module / Accounting, mais ils ne diffèrent pas seulement par le thème visuel. Plusieurs différences sont encodées directement dans les settings disponibles, les types d'entreprise, la forme juridique, les partenaires, les produits/services, les modules disponibles et certaines branches de l'Answer Key.

Cette page répond à deux questions :

  1. Qu'est-ce qui est réellement différent entre ACC1 et ACC2 ?
  2. Quand une modification doit-elle aller dans le commun, ACC1, ACC2 ou être testée dans les deux ?

Résumé fonctionnel

Dimension ACC1 ACC2
Univers métier Entreprise spécialisée dans la vente de piscines. Entreprise spécialisée dans la vente de café et de machines à café.
Objectif pédagogique Compléter un cycle comptable. Compléter un cycle comptable.
Framework technique By Module + acc_base. By Module + acc_base.
Type d'activité de l'entreprise our_company_type disponible : commerciale / services / mixte selon le module. Même système.
Forme juridique Preference masquée; les defaults des modules sont essentiellement single_owner. Preference ACC2-only : société en nom collectif, société par actions A, société par actions A+B. PAS DE single_owner.
Créances / effets à recevoir Non exposés dans le wizard. has_debts et has_interests sont ACC2-only.
Petite caisse Le moteur commun existe, mais le module n'est pas disponible dans le wizard ACC1. module_petty_cash est ACC2-only.
Co-propriétaire / actionnaires Pas d'entités game-specific correspondantes dans companies/partners. our_company_co_owner, shareholder_group_a, shareholder_group_b.
Companies 66. 67.
Partners 76. 77.
Products 77. 43.
Services 41. 58.
Tutoriels game-specific Plusieurs scripts/prefabs ACC1 dédiés. Pas d'équivalent dans le dossier ACC2 actuel.

Attention : “Type d'entreprise” et “Forme juridique” sont deux settings différents

C'est important car les deux notions sont faciles à mélanger.

our_company_type — disponible dans le framework des deux jeux

Le setting our_company_type décrit l'activité économique de l'entreprise :

  • products_company — commerciale;
  • services_company — de services;
  • products_and_services_company — commerciale et de services.

Ce setting influence notamment :

  • stock / inventaire;
  • comptes visibles;
  • types de bills disponibles;
  • pages/relations liées aux ventes et services.

Dans preferences_settings_definitions.json :

PreferencesWizardPageControl.ShouldSkipPreference() masque toute preference marquée acc2Only lorsque CurrentGameUid != "acc2".

Formes juridiques supportées par le moteur

Le moteur By Module connaît explicitement :

UID Libellé Conséquence principale
single_owner Propriétaire unique Capital et retraits d'un seul propriétaire.
partnership Société en nom collectif Deux propriétaires; capital, apports/retraits et profits peuvent être répartis.
joint_stock_a Société par actions — groupe A Capital-actions A + bénéfices non répartis.
joint_stock_ab Société par actions — groupes A et B Capital-actions A+B + bénéfices non répartis; deux groupes d'actionnaires.

ACC1 contient les textes/structures génériques nécessaires au moteur, mais la preference est explicitement masquée dans son wizard. ACC2 expose réellement cette variation au professeur.

Impact technique de la forme juridique

Ce n'est pas un simple label. company_legal_form traverse plusieurs moteurs.

1. BillCreationContext / BillContext

Les deux contextes lisent :

this._companyLegalForm =
    utilsByModule.getModulePreference(
        moduleSettings,
        utilsByModule.constants.modulesPreferences.COMPANY_LEGAL_FORM
    );

Pour une partnership, ourCompanyOwnerShares vaut par défaut 50 si aucune valeur n'est présente.

2. Répartition propriétaire / co-propriétaire

BillContext.getOwnerPaymentAmount() répartit un montant entre propriétaire/co-propriétaire lorsque la forme est :

  • partnership;
  • joint_stock_ab pour certains calculs actionnaires.

3. Génération de bills

BillCreationContext.getPayingOwnerUid() peut choisir un ou les deux propriétaires pour une partnership. Le BillFactory possède aussi des branches spécifiques pour :

  • les paiements des propriétaires;
  • les retraits;
  • la Petite caisse;
  • la création de plusieurs bills lorsque plusieurs propriétaires paient.

4. Comptes visibles

accounts.json possède des conditions de visibilité basées sur la forme juridique. Exemples :

  • capital du propriétaire;
  • capital du co-propriétaire;
  • retraits/apports du co-propriétaire;
  • capital-actions;
  • bénéfices non répartis.

5. État des capitaux propres

L'Answer Key change réellement la structure :

  • single owner → capital du propriétaire;
  • partnership → capital propriétaire + co-propriétaire;
  • joint stock → capital-actions + bénéfices non répartis;
  • joint_stock_ab → deux groupes de capital-actions.

6. Clôture

Dans byModule_utils_answer_key_module.js :

  • une partnership répartit le résultat entre our_company_capital et our_company_co_owner_capital;
  • une société par actions transfère le résultat vers retained_earnings;
  • un propriétaire unique utilise le capital propriétaire.

Donc toute modification touchant capital, fermeture, equity, dividends, owner bills ou financial statements doit être testée avec plusieurs formes juridiques ACC2.

Différences ACC2-only encodées dans le framework partagé

Un grep de acc2_only dans la static data By Module montre actuellement ces différences explicites :

Feature Fichier Effet
company_legal_form preferences_settings_definitions.json Preference visible seulement dans ACC2.
has_debts preferences_settings_definitions.json Créances activables seulement dans ACC2 via le wizard.
has_interests preferences_settings_definitions.json Effets à recevoir / intérêts activables seulement dans ACC2 via le wizard.
module_petty_cash modules_settings_definitions.json Module proposé uniquement dans ACC2.

Filtrage du module Petite caisse

ModuleDataAndNameWizardPageControl vérifie moduleDefinition.acc2Only et ignore le module lorsqu'on n'est pas dans ACC2.

Filtrage des preferences

PreferencesWizardPageControl.ShouldSkipPreference() applique le même principe aux preferences ACC2-only.

ACC2 — Créances et effets à recevoir

Les preferences :

  • has_debts — libellé FR actuel : Créances;
  • has_interests — libellé FR actuel : Effets à recevoir.

Elles sont référencées dans plusieurs définitions de modules : General Journal, Auxiliary Journals, Regularizations, Balance Sheet, Financial Statements, etc. Elles peuvent donc affecter :

  • bills clients;
  • radiation de client;
  • provisions;
  • notes à recevoir;
  • intérêts;
  • ledger;
  • trial balance;
  • financial statements;
  • Answer Key / Grading.

Une modification de ces chemins doit être testée dans ACC2 avec les toggles ON et OFF.

ACC2 — Module Petite caisse

module_petty_cash est marqué acc2_only: true dans modules_settings_definitions.json.

Contenu game-specific ACC2

ACC2 possède notamment :

  • ModulePettyCashScenarioPages.asset;
  • petty_cash comme partenaire/contexte;
  • fournisseurs Petite caisse : convenience, maintenance, mail, florist, stationery;
  • petty_cash_initial_fund;
  • dépenses : lait, pain, papier hygiénique, timbres, enveloppes, colle, vis, ruban, fleurs, papeterie, etc.;
  • retraits personnels;
  • textes/références régionaux QC/ON/NB/PE.

Moteur commun malgré tout

Les classes techniques de Petite caisse sont dans le commun By Module, par exemple :

  • PettyCashDeclarationBill;
  • PettyCashReplenishmentCheckBill;
  • branches Petty Cash du BillFactory;
  • journal/Answer Key/Grading correspondants.

Autrement dit : le moteur est partagé, mais ACC2 est le jeu qui expose officiellement le module.

Différences de partenaires / companies

ACC1 — 66 companies

Les fournisseurs principaux sont liés aux piscines et à l'extérieur :

  • motor_company;
  • pipe_company;
  • aluminium_company;
  • wood_company;
  • chlore_company / chlore_salt_company;
  • solar_canvas_company / winter_canvas_company;
  • stairs_company;
  • light_company;
  • outdoor_company;
  • toys_company;
  • barbecue_company.

ACC2 — 67 companies

Les fournisseurs principaux sont liés au café :

  • coffee_company;
  • espresso_company;
  • beans_company;
  • brew_company;
  • blend_company;
  • grind_company;
  • roast_company;
  • barista_company.

ACC2 ajoute en plus des entités structurelles absentes des companies ACC1 :

  • our_company_co_owner;
  • shareholder_group_a;
  • shareholder_group_b;
  • petty_cash;
  • les fournisseurs de Petite caisse.

Partner subtypes différents

ACC2 possède des partner_sub_type supplémentaires :

  • our_company_co_owner;
  • shareholder_group_a;
  • shareholder_group_b;
  • petty_cash;
  • petty_cash_convenience_oc;
  • petty_cash_maintenance_oc;
  • petty_cash_mail_oc;
  • petty_cash_florist_oc;
  • petty_cash_stationery_oc.

Ces différences ne sont pas décoratives : BillFactory et plusieurs bill classes sélectionnent les partenaires selon leur subtype.

Produits : univers complètement différent

ACC1 — 77 products

Types et exemples :

  • piscines : above_pool_*, mid_pool_*, in_pool_*;
  • entretien : chlore, algicide, robot cleaner;
  • extérieur : sofa, gazebo, toys, barbecue;
  • composants de piscine : moteurs, tuyaux, aluminium, bois, chauffe-eau, systèmes chlore, toiles, escaliers, lumières;
  • plus les produits techniques communs : deposit/withdrawals, bank, office supplies, loans, etc.

ACC2 — 43 products

Types et exemples :

  • espresso machines : regular/highend/deluxe;
  • coffee machines : regular/highend/deluxe;
  • beans : raw/roasted/blends;
  • retail/accessoires : brush, descaler, air blower, grinders, roasters, filters, scales, tampers, cups;
  • plus les produits techniques communs.

Product types propres à ACC2

  • espresso_machine;
  • coffee_machine;
  • beans;
  • our_company_co_owner;
  • shareholder_group_a;
  • shareholder_group_b.

Services : ACC2 en contient davantage

ACC1 — 41 services

Une grosse partie est liée aux piscines :

  • fermeture de piscine par type/taille;
  • nettoyage;
  • maintenance;
  • installation;
  • installation de chauffe-eau;
  • services/operating costs communs.

ACC2 — 58 services

ACC2 ajoute de nombreuses familles :

  • Petite caisse : fonds initial, consommables, dépenses et retraits;
  • formation barista : novice / advanced / expert;
  • coffee shop : installation, cleaning, maintenance;
  • maintenance machines : repair, cleaning, descaling;
  • maintenance équipements : grinder sharpening, scale calibration, parts replacing;
  • eau / steam wand;
  • stocks/actionnaires.

Ce qui reste commun dans les datasets

Dans l'état actuel du dépôt, les différences les plus importantes ne viennent pas de :

  • conditions.json;
  • employees.json;
  • salaries.json.

Les différences sont surtout dans companies, partners, products, services, les ScenarioPages, les assets et les settings ACC2-only.

Server scripts ACC1 vs ACC2

Côté serveur, les wrappers restent volontairement presque identiques.

Commandes présentes dans les deux

  • answer_key_module;
  • change_module_item_index;
  • change_module_sort_index;
  • change_module_visibility;
  • create_team;
  • custom_command;
  • generate_new_good_decisions;
  • generate_results;
  • get_new_good_decisions;
  • reopen_module;
  • set_correction_mode_off.

acc1_utils.js vs acc2_utils.js

Ils sont actuellement identiques à part le GameUid et les noms de classes :

GameSpecificUtilsAcc1 -> GameSpecificUtilsAccBase("acc1")
GameSpecificUtilsAcc2 -> GameSpecificUtilsAccBase("acc2")

Donc une règle comptable commune doit aller dans acc_base ou _utils/by_module, pas être dupliquée dans les deux fichiers.

Exception historique ACC1

acc1_module_sort_name.js existe uniquement dans ACC1 et ne fait qu'inclure acc_base_change_module_sort_index. C'est un alias historique, pas une différence métier.

UI / scenes / skins

ACC1 ACC2
Acc1Student.unity Acc2Student.unity
Acc1Teacher.unity Acc2Teacher.unity
MainControlStudentAcc1.prefab MainControlStudentAcc2.prefab
MainControlTeacherAcc1.prefab MainControlTeacherAcc2.prefab
Acc1Skin.asset Acc2Skin.asset
Doozy graphs ACC1 Doozy graphs ACC2

Tutoriels : différence ACC1 importante

ACC1 contient actuellement toute une couche game-specific absente d'ACC2 :

  • AccGeneralTutorials.cs;
  • GenericAcc1Tutorial.cs;
  • GenericAcc1TutorialNoModules.cs;
  • TutorialButtonAcc1Async.cs;
  • TutorialButtonAcc1Sync.cs;
  • TutorialPopupControlAcc1Async.cs;
  • TutorialPopupControlAcc1Sync.cs;
  • prefabs TutorialPopupControlAcc1*.

Ils couvrent navigation générale, correction, pratique, fin summative, téléchargement/impression, deuxième fenêtre et report aux grands livres.

Si une UI commune By Module est modifiée, tester que les UIDs ciblés par ces tutoriels ACC1 existent toujours.

ScenarioPages

Les deux jeux possèdent la majorité des mêmes ScenarioPages Accounting :

  • Accounting Cycle;
  • Accounting Journal;
  • General Journal;
  • Auxiliary Journals / Ledgers;
  • Taxes;
  • Income Taxes / Employer Income Taxes;
  • Regularizations;
  • Financial Statements;
  • Closure;
  • Balance Sheet.

ACC2 possède en plus ModulePettyCashScenarioPages.asset. Plusieurs assets homologues ont également des différences de contenu/références : ne pas copier un asset ACC1 sur ACC2 ou inversement sans diff.

Quand modifier où ?

Changement Emplacement attendu
Règle comptable valable pour ACC1 + ACC2 acc_base / By Module commun.
Nouveau bill générique Pipeline Bills commun.
Support d'une nouvelle forme juridique Framework commun + settings, puis exposition selon le jeu.
Modification du comportement partnership/joint stock BillContext/BillFactory/Answer Key/Grading communs; tester ACC2.
Nouvelle feature créances/intérêts Framework commun, mais activation ACC2-only tant que le produit reste ainsi.
Nouveau contenu Petite caisse ACC2 data; moteur commun si logique.
Nouveau fournisseur piscine ACC1 static data.
Nouveau fournisseur café ACC2 static data.
Changement visuel GameSpecific concerné.
Changement tutoriel général ACC1 GameSpecific ACC1.

Matrice de test recommandée

Une feature Accounting qui touche une zone commune ne devrait pas être validée sur un seul jeu.

Feature touchée Tests minimum
Bills/journaux/ledger généraux ACC1 + ACC2.
Inventory ACC1 + ACC2 avec company type/stock type pertinent.
Capital/equity/closing ACC1 default + ACC2 single owner + partnership + joint stock A + joint stock AB.
Owner bills ACC1 owner unique + ACC2 partnership.
Dividends / retained earnings ACC2 joint stock.
Créances / effets à recevoir ACC2 ON/OFF.
Petite caisse ACC2.
Tutoriel/UI modules ACC1 + ACC2; vérifier ACC1 tutorial targets.
Scenario Asset du même module dans les deux jeux.

Fichiers clés pour comprendre les différences

  • Assets/GameSpecific/acc1/Resources/data_acc1/
  • Assets/GameSpecific/acc2/Resources/data_acc2/
  • Assets/GameSpecific/byModule/Resources/data_byModule/preferences_settings_definitions.json
  • Assets/GameSpecific/byModule/Resources/data_byModule/modules_settings_definitions.json
  • Assets/Src/UI/SimByModule/UI/Wizards/SaveModule/PreferencesWizardPageControl.cs
  • Assets/Src/UI/SimByModule/Data/ModuleDataAndNameWizardPageControl.cs
  • node.js/backend/braincloud/server_scripts/_utils/by_module/contexts/BillCreationContext.js
  • node.js/backend/braincloud/server_scripts/_utils/by_module/contexts/BillContext.js
  • node.js/backend/braincloud/server_scripts/_utils/by_module/factories/BillFactory.js
  • node.js/backend/braincloud/server_scripts/_utils/by_module/byModule_utils_answer_key_module.js

Pages liées