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 :
- Qu'est-ce qui est réellement différent entre ACC1 et ACC2 ?
- 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 : 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.
company_legal_form — ACC2-only dans le wizard
Dans preferences_settings_definitions.json :
"company_legal_form": {
"category": "company",
"type": "dropdown",
"data_uid": "company_legal_form",
"acc2_only": true
}
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_abpour 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_capitaletour_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_cashcomme 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*.
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.jsonAssets/GameSpecific/byModule/Resources/data_byModule/modules_settings_definitions.jsonAssets/Src/UI/SimByModule/UI/Wizards/SaveModule/PreferencesWizardPageControl.csAssets/Src/UI/SimByModule/Data/ModuleDataAndNameWizardPageControl.csnode.js/backend/braincloud/server_scripts/_utils/by_module/contexts/BillCreationContext.jsnode.js/backend/braincloud/server_scripts/_utils/by_module/contexts/BillContext.jsnode.js/backend/braincloud/server_scripts/_utils/by_module/factories/BillFactory.jsnode.js/backend/braincloud/server_scripts/_utils/by_module/byModule_utils_answer_key_module.js