Accounting 1 vs Accounting 2 — différences réelles
But de cette page
ACC1 et ACC2 utilisentpartagent le même frameworkmoteur By Module/Accounting.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 documenterépond uniquementà leursdeux différencesquestions concrètes:
byModuleacc_baseRésumé rapidefonctionnel
| ACC1 | ACC2 | |
|---|---|---|
| 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. |
|
Même |
|
Preference masquée; les defaults des modules sont essentiellement . |
StaticDataAcc2en has_debts has_interests ModulePettyCashScenarioPagescommun module_petty_cash 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 CeAttention qui: est“Type réellementd'entreprise” communet “Forme juridique” sont deux settings différents
LaC'est majorité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 la logique n'est pas dupliquée entre ACC1 et ACC2.
flowchart TD
BM[By Module commun] --> BASE[acc_base]
BASE --> A1[acc1 wrappers + data]
BASE --> A2[acc2 wrappers + data]
Les moteurs suivants sont communsl'entreprise :
Createproducts_company— commerciale;
services_company — de services;
products_and_services_company — commerciale et de services.
Ce setting influence notamment :
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 Typeconnaît Data;explicitement :
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 :
4. Comptes visibles
accounts.json possède des conditions de visibilité basées sur la forme juridique. Exemples :
5. État des capitaux propres
L'Answer Key change réellement la structure :
6. Clôture
Dans byModule_utils_answer_key_module.js :
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 :
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 :
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;
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 classesà del'extérieur bills;:
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é :
acc_basecoffee_company;
espresso_company;
beans_company;
brew_company;
blend_company;
grind_company;
roast_company;
barista_company.
RègleACC2 :ajoute sien uneplus règledes comptableentités doitstructurelles fonctionnerabsentes dansdes companies ACC1 et ACC2, commencer par chercher dans _utils/by_module ou acc_base. Ne pas copier la même fonction dans acc1_utils.js et acc2_utils.js.
Différence serveur : très mince
acc1_utils.js vs acc2_utils.js
Les deux fichiers sont actuellement structurellement identiques :
ils héritent de;GameSpecificUtilsAccBaseour_company_co_ownerils fournissent seulement le GameUid correspondant;shareholder_group_a;ilsshareholder_group_b;
petty_cash;
les fournisseurs de Petite caisse.
Partner subtypes différents
ACC2 possède des supplémentaires :utilsAccGameSpecificpartner_sub_type
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.
AutrementCes dit,différences ilne n'existesont actuellementpas 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 :
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 :
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 règlepartie métierest ACC1-onlyliée ouaux ACC2-onlypiscines :
ACC2 — 58 services
ACC2 ajoute de nombreuses familles :
Ce qui reste commun dans cesles fichiers.datasets
Dans l'état actuel du dépôt, les différences les plus importantes ne viennent pas de :
Wrappers
conditions.json;
employees.json;
salaries.json.
Les commandesdifférences suivantessont existentsurtout desdans 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 côtés sous des noms préfixés ACC1/ACC2 :
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
LesIls wrapperssont fontactuellement essentiellementidentiques :
acc1_utilsacc2_utilsacc_baseAlias historique uniquement ACC1
ACC1 contient en plusclasses :
acc1_module_sort_name.jsGameSpecificUtilsAcc1 -> GameSpecificUtilsAccBase("acc1")
GameSpecificUtilsAcc2 -> GameSpecificUtilsAccBase("acc2")
CeDonc fichierune 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 contientfait qu'un include deinclure . /acc_base/command/acc_base_change_module_sort_indexIlC'est s'agit donc d'un alias/wrapperalias historique, pas d'unune moteurdifférence distinct. Ne pas reproduire cet alias côté ACC2 sans besoin de compatibilité réel.métier.
Différences de static data
Les différences importantes vivent principalement dans :
Assets/GameSpecific/acc1/Resources/data_acc1/Assets/GameSpecific/acc2/Resources/data_acc2/Données qui diffèrent fortement
companies.jsonpartners.jsonproducts.jsonservices.jsonDonnées actuellement communes ou quasi identiques
Le diff actuel ne montre pas de différence de contenu significative dans :
conditions.jsonemployees.jsonsalaries.jsonNe pas en déduire qu'elles doivent rester identiques pour toujours. Simplement, dans l'état actuel du dépôt, elles ne portent pas la différence principale ACC1/ACC2.
ACC1 : particularités actuelles
Contexte métier
Les textes présentent ACC1 comme une entreprise spécialisée dans la vente de piscines. L'étudiant travaille au département de comptabilité et doit compléter un cycle comptable.
Tutoriels game-specific
Le dossier Assets/GameSpecific/acc1/src/ contient plusieurs composants absents du dossier ACC2 :
AccGeneralTutorials.csGenericAcc1Tutorial.csGenericAcc1TutorialNoModules.csTutorialButtonAcc1Async.csTutorialButtonAcc1Sync.csTutorialPopupControlAcc1Async.csTutorialPopupControlAcc1Sync.csTutorialPopupControlAcc1*Ces tutoriels couvrent notamment navigation générale, correction, pratique, fin summative, téléchargement/impression des pièces, deuxième fenêtre et report aux grands livres.
Assets visuels
ACC1 possède des images et animations liées notamment aux immobilisations/services : electricity, equipment, furnishings, hardware, internet, rolling stock, telecom.
ACC2 : particularités actuelles
Contexte métier
Les textes présentent ACC2 comme une entreprise spécialisée dans la vente de café et de machines à café. L'objectif reste de compléter un cycle comptable.
Module Petite caisse
ACC2 contient explicitement :
ModulePettyCashScenarioPages.assetmodule_petty_cashpetty_cash_journalpetty_cash_formImportant : le moteur Petty Cash lui-même vit dans le framework commun By Module/Accounting. La différence ACC2 est surtout que son contenu/configuration l'utilise explicitement.
Assets visuels
ACC2 possède un univers visuel distinct : clients, personnages, café, barcode, corkboard, etc.
ScenarioPages
Les deux jeux partagent pratiquement le même ensemble de ScenarioPages Accounting :
ACC2 ajoute actuellement le scénario Petty Cash. Plusieurs assets homologues ont aussi de petites différences de contenu/références, donc ne pas remplacer automatiquement un asset ACC1 par son homologue ACC2.
Scenes, skins et UI root
| 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 :
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 seulement ACC1 ou ACC2où ?
acc_base |
|
| Nouveau |
Pipeline Bills commun. |
| Support d'une nouvelle forme juridique |
Checklist avantMatrice de considérertest recommandée
Une feature Accounting qui touche une featurezone “Accountingcommune compatible”ne
acc_baseFichiers clés pour comprendre les différences
Assets/GameSpecific/acc1/Resources/data_acc1/
data_acc*Assets/GameSpecific/acc2/Resources/data_acc2/ACC1Assets/GameSpecific/byModule/Resources/data_byModule/preferences_settings_definitions.jsonTutorialUIObjectAssets/GameSpecific/byModule/Resources/data_byModule/modules_settings_definitions.jsonAssets/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