Acc
- Correction Acc1
- Exemple de donnée d'une équipe pour un module (Module_Test)
- Création du corrigé Acc1
- Pointage des differents champs
- Préférences
- StaticData
- Ajouter une nouvelle page
- Ajouter un nouveau module
- Arborescence des controls pour les modules
- Procédure annuel pour updater les taxes (Deprecated)
- Création d'une simulation (acc1)
- Modification de la valeur des stocks, PEPS
- Bénéfices et pertes
- Remise et remboursement de taxes
- Procédure annuel pour updater les taxes (updated version 2026)
Correction Acc1
Préparation
Avant de commencer la correction, plusieurs informations sont stocker dans differents dictionnaires afin qu'elles soient plus facile d'accès par la suite.
Par la suite, le score des différents modules pages est calculés.
Journal des Achats, Ventes, Encaissements, Décaissements, Salaires
- Regarder chacune des rows de la table
- Certains champs sont requis pour effectuer la correction d'une rangée (dépends du modulePage)
- si manquant, ajoute une erreur ("row_input_value_missing")
- Trouver la facture de reference avec les champs appropriées (dépend du modulePage)
- si la référence n'est pas trouvée, ajoute une erreur ("row_reference_not_found")
- Correction des différents inputs de la row selon les informations de la facture trouvée
- Voir la section, Aide à la correction 1
- Vérifier que les identifiants ne sont pas déjà utilisé
- Voir la section, Aide à la correction 2
- Certains champs sont requis pour effectuer la correction d'une rangée (dépends du modulePage)
- Vérifier que toutes les factures sont présentes
- s'il manque des factures, ajoute l'erreur ("bill_missing")
- Calculer le score total du journal
- s'il n'y a pas de rows dans la table, ajoute l'erreur ("empty_table")
Grand livre auxiliaire des Fournisseurs/Clients
- Vérifier qu'il y a des Fournisseurs/Clients d'ajouter
- s'il y en a pas, ajoute l'erreur ("no_dynamic_dropdown_data")
- Pour chacun des Fournisseurs/Clients, faire les vérification suivantes
- Vérifier les conditions de la compagnie
- Si la condition choisi n'est pas la bonne, ajouter l'erreur ("dynamic_dropdown_data_secondary_wrong_answer")
- Vérifier qu'il y a des décisions prise pour le Fournisseurs/clients
- s'il y en a pas, ajoute l'erreur ("empty_table")
- Pour chacune des rows du Fournisseurs/clients, effectuer les vérification suivantes
- Vérifier l'ordre des lignes selon la date
- s'il ne le sont pas, ajoute l'erreur ("row_wrong_order")
- Trouver la ligne de reference (une ligne des Journaux) avec les champs appropriées (dépend du modulePage)
- si la référence n'est pas trouvée, ajoute une erreur ("row_reference_not_found")
- Correction des différents inputs de la row selon les informations de le ligne de référence trouvée et de la balance qui est modifier selon les autres inputs de la row
- Voir la section, Aide à la correction 1
- Vérifier que les identifiants ne sont pas déjà utilisé
- Voir la section, Aide à la correction 2
- Vérifier l'ordre des lignes selon la date
- Vérifier qu'il y a des lignes de présentes
- s'il y en a pas, ajoute l'erreur ("empty_table")
- Vérifier que toutes les rows sont présentes
- si ce n'est pas le cas, ajoute l'erreur ("referenced_row_missing")
- Calculer le score de la table
- Vérifier les conditions de la compagnie
- Calculer le score total du modulePage
Grand livre
- Calculer la balance de tout les comptes ainsi que les montants finaux du journal general(Cela sera utilisés durant la correction).
- Pour chacune des tables (chaque table est associé à un compte)
- Pour chacune des rows dans la table
- Vérifier l'ordre des rows avec la date
- si l'ordre n'est pas le bon, ajoute l'erreur ("row_wrong_order")
- Trouver la ligne de reference (une ligne des Journaux) avec les champs appropriées (dépend du modulePage)
- si la référence n'est pas trouvée, ajoute une erreur ("row_reference_missing")
- Correction des différents inputs de la row selon les informations du compte de référence trouvée et de la balance qui est modifier selon les autres inputs de la row
- Voir la section, Aide à la correction 1
- Vérifier que les identifiants ne sont pas déjà utilisé
- Voir la section, Aide à la correction 2
- Vérifier l'ordre des rows avec la date
- Vérifier qu'il y a des lignes de présentes
- s'il y en a pas, ajoute l'erreur ("empty_table")
- Vérifier que toutes les comptes sont présents
- si ce n'est pas le cas, ajoute l'erreur ("referenced_page_missing")
- Calculer le score de la table
- Pour chacune des rows dans la table
- Vérifier que tout les comptes soit présents
- si un compte n'est pas présent, ajoute l'erreur ("account_empty")
- Calculer le score total du modulePage
- s'il n'y a pas de comptes, ajoute l'erreur ("no_accounts")
Journal Général
- Trier les differentes sections (écritures) du modulePage en plusieurs differentes catégories (charges, produits, équité).
- Vérifier l'ordre des rows dans les catégories,
- s'il ne sont pas dans le bon ordre, ajoute l'erreur ("row_wrong_order")
- Pour chacune des rows des catégories
- Correction des différents inputs de la row selon les informations du compte de référence et de la catégorie
- Voir la section, Aide à la correction 1
- Vérifier que les identifiants ne sont pas déjà utilisé
- Voir la section, Aide à la correction 2
- Correction des différents inputs de la row selon les informations du compte de référence et de la catégorie
- Vérifier que tout les comptes "produit" ou "charges" sont bien présents
- S'il en manquent, ajoute l'erreur ("table_account_missing")
- Calculuer le score final du journal
- Si une catégorie est vide, ajoute l'erreur ("group_empty")
Balance de vérification
- Regarder chacune des rows de la table
- Certains champs sont requis pour effectuer la correction d'une rangée (Numero de compte, nom de compte)
- si manquant, ajoute une erreur ("row_input_value_missing")
- Vérifier que l'ordre de la row est le bon
- s'il l'ordre n'est pas le bon, ajoute l'erreur ("row_wrong_order")
- Correction des différents inputs de la row selon les informations du compte trouvé
- Voir la section, Aide à la correction 1
- Vérifier que les identifiants ne sont pas déjà utilisé
- Voir la section, Aide à la correction 2
- Certains champs sont requis pour effectuer la correction d'une rangée (Numero de compte, nom de compte)
- Vérifier que tous les comptes sont présents
- si un compte est manquant, ajoute l'erreur ("table_account_missing")
- Vérifier que le module page n'est pas vide
- si c'est le cas, ajoute l'erreur ("empty_table")
- Calculer le score du module page
État des résultats
- Pour chaque section de la table
- Pour chaque rows de la section
- Trouver le compte de référence
- si la référence n'est pas trouvée, ajoute une erreur ("row_reference_missing")
- Vérifier que le compte est dans la bonne section (Chaque section à des comptes spécifiques)
- Si le compte n'est pas dans la bonne section, ajoute l'erreur ("row_wrong_section")
- Correction des différents inputs de la row selon les informations du compte de référence trouvée et de la balance qui est modifier selon les autres inputs de la row
- Voir la section, Aide à la correction 1
- Vérifier que les identifiants ne sont pas déjà utilisé
- Voir la section, Aide à la correction 2
- Trouver le compte de référence
- Pour chaque rows de la section
- Correction des différents inputs de la table (leurs valeurs dépends de la valeur des inputs de la table)
- Voir la section, Aide à la correction 1
- Vérifier que tout les comptes sont présents
- s'il en manque, ajoute l'erreur ("table_account_missing")
- Calculer de score des options de la table
- Voir la section, Aide à la correction 3
- Calculer le score final du journal
- Si une catégorie est vide, ajoute l'erreur ("empty_table")
État des capitaux propres
- Pour chaque rows de la table
- Trouver le compte de référence
- si la référence n'est pas trouvée, ajoute une erreur ("row_reference_missing")
- Correction des différents inputs de la row selon les informations du compte de référence trouvée et de la balance qui est modifier selon les autres inputs de la row
- Voir la section, Aide à la correction 1
- Vérifier que les identifiants ne sont pas déjà utilisé
- Voir la section, Aide à la correction 2
- Trouver le compte de référence
- Correction des différents inputs de la table (leurs valeurs dépends de la valeur des inputs de la table)
- Voir la section, Aide à la correction 1
- Calculer de score des options de la table
- Voir la section, Aide à la correction 3
- Calculer le score final du journal
- Si une catégorie est vide, ajoute l'erreur ("empty_table")
Bilan
- Pour chaque section de la table
- Pour chaque rows de la section
- Trouver le compte de référence
- si la référence n'est pas trouvée, ajoute une erreur ("row_reference_missing")
- Vérifier que le compte est dans la bonne section (Chaque section à des comptes spécifiques)
- Si le compte n'est pas dans la bonne section, ajoute l'erreur ("row_wrong_section")
- Correction des différents inputs de la row selon les informations du compte de référence trouvée et de la balance qui est modifier selon les autres inputs de la row
- Voir la section, Aide à la correction 1
- Vérifier que les identifiants ne sont pas déjà utilisé
- Voir la section, Aide à la correction 2
- Trouver le compte de référence
- Pour chaque rows de la section
- Correction des différents inputs de la table (leurs valeurs dépends de la valeur des inputs de la table)
- Voir la section, Aide à la correction 1
- Vérifier que tout les comptes sont présents
- s'il en manque, ajoute l'erreur ("table_account_missing")
- Calculer de score des options de la table
- Voir la section, Aide à la correction 3
- Calculer le score final du journal
- Si une catégorie est vide, ajoute l'erreur ("empty_table")
Aide à la correction
- Méthodologie pour corriger les bonne réponses d'une série d'input
- Regarder chacun des inputs et les comparé a une liste de bonne réponse
- Si la réponses d'input est mauvaise, ajoute une erreur ("row_input_value_wrong_answer")
- Si l'input n'as pas de valeur, ajoute l'erreur ("row_input_value_missing")
- si l'input à une valeur mais ne devrait pas encore avoir, ajoute l'erreur ("row_input_value_should_be_empty")
- Regarder chacun des inputs et les comparé a une liste de bonne réponse
- Vérifier que la référence d'une row n'est pas utiliser à multiples reprises
- Comparer les identifiants envoyer avec les identifiants des autres rows
- si une autre row à les même identifiants, conserver le meilleur score et ajoute l'erreur ("row_reference_used")
- Comparer les identifiants envoyer avec les identifiants des autres rows
- Méthodologie pour calculer le score des options d'un module page
- Les informations pour les options voulu sont stocker dans le staticData
- Si les critère ne sont pas respecter, 3 erreurs peuvent se produire pour les options d'input dans une row
- Si l'input à une options mais ne devrait pas l'avoir, ("row_input_option_should_be_empty")
- Si l'input à la mauvaise réponse, ("row_input_option_wrong_answer")
- Si l'input n'a pas d'option mais devrait en avoir, ("row_input_option_missing")
- et 3 autres erreurs sont possible pour les options d'input dans une table
- Si l'input à une options mais ne devrait pas l'avoir, ("table_input_option_should_be_empty")
- Si l'input à la mauvaise réponse, ("table_input_option_wrong_answer")
- Si l'input n'a pas d'option mais devrait en avoir, ("table_input_option_missing")
- Si les critère ne sont pas respecter, 3 erreurs peuvent se produire pour les options d'input dans une row
- Les informations pour les options voulu sont stocker dans le staticData
Exemple de donnée d'une équipe pour un module (Module_Test)
{
"uid": "7200188c-a8e6-4904-a92b-b8bbf64086f9-module_TEST",
"simUid": "0a189c03-43db-4585-a1bd-171d2c6ec3ff",
"gameUid": "acc1",
"teamUid": "7200188c-a8e6-4904-a92b-b8bbf64086f9",
"moduleUid": "module_TEST",
"moduleTypesData": {
"practice": {
"seed": 2032993953,
"pagesData": {
"payroll_journal": {
"tables": {
"default": {
"sections": {
"default": {
"rowsIndex": [
"7ca74915-56fe-4452-8290-141d6ed0ac0d"
],
"rows": {
"7ca74915-56fe-4452-8290-141d6ed0ac0d": {
"inputs": {
"employee": {
"value": "employee_1"
},
"date": {
"value": "2020-07-02"
},
"amount_hours": {
"value": "38.00"
},
"hourly_rate": {
"value": "17.07"
},
"salaries": {
"value": "648.66"
},
"rrq_to_pay": {
"value": "38.27"
},
"rqap_to_pay": {
"value": "3.20"
},
"employment_insurance_to_pay": {
"value": "7.65"
},
"provincial_tax_to_pay": {
"value": "97.30"
},
"federal_tax_to_pay": {
"value": "97.30"
},
"salaries_to_pay": {
"value": "404.94"
},
"bill_id": {
"value": "1921"
}
}
}
}
}
}
}
}
},
"withdrawals_journal": {
"tables": {
"default": {
"sections": {
"default": {
"rowsIndex": [
"453f40df-950e-4fe2-bcbf-618811cd7b7e",
"d8d50ce1-d048-48ba-ab06-994aa9561b11"
],
"rows": {
"453f40df-950e-4fe2-bcbf-618811cd7b7e": {
"inputs": {
"date": {
"value": "2020-07-02"
},
"company_uid": {
"value": "employee_1"
},
"bill_id": {
"value": "1918"
},
"cashings": {
"value": "404.94"
},
"salaries_to_pay": {
"value": "404.94"
},
"report_to_account": {
"value": "1"
}
}
},
"d8d50ce1-d048-48ba-ab06-994aa9561b11": {
"inputs": {
"date": {
"value": "2020-08-22"
},
"company_uid": {
"value": "motor_company"
},
"bill_id": {
"value": "1919"
},
"cashings": {
"value": "67596.84"
},
"purchases": {
"value": ""
},
"report_to_account": {
"value": "1"
},
"providers": {
"value": "67596.84"
}
}
}
}
}
}
}
}
},
"purchases_journal": {
"tables": {
"default": {
"sections": {
"default": {
"rowsIndex": [
"4b8da7f3-8cf9-4de6-bda9-d62aef2ce493"
],
"rows": {
"4b8da7f3-8cf9-4de6-bda9-d62aef2ce493": {
"inputs": {
"company_uid": {
"value": "motor_company"
},
"date": {
"value": "2020-08-21"
},
"bill_id": {
"value": "127"
},
"providers": {
"value": "67596.84"
},
"purchases": {
"value": "58792.64"
},
"tps_to_receive": {
"value": "2939.63"
},
"tvq_to_receive": {
"value": "5864.57"
},
"report_to_account": {
"value": "1"
}
}
}
}
}
}
}
}
},
"providers_subledger": {
"tables": {
"motor_company": {
"sections": {
"default": {
"rowsIndex": [
"5a8f6c19-81ff-4e95-9baa-0d1263519ed4",
"da745157-f975-4b8e-85fe-b9d79e6f7e38",
"3600b4df-9958-4f95-9c02-0eca0b790f85"
],
"rows": {
"5a8f6c19-81ff-4e95-9baa-0d1263519ed4": {
"inputs": {
"date": {
"value": "2020-08-21"
},
"reference": {
"value": "purchases_journal_short"
},
"bill_id": {
"value": "127"
},
"balance": {
"value": "67596.84"
},
"credit": {
"value": "67596.84"
},
"debit_credit": {
"value": "credit_short"
}
}
},
"da745157-f975-4b8e-85fe-b9d79e6f7e38": {
"inputs": {
"date": {
"value": "2020-08-22"
},
"other_bill_id": {
"value": "check-1919"
},
"reference": {
"value": "withdrawals_journal_short"
},
"debit": {
"value": "67596.84"
},
"balance": {
"value": ""
},
"debit_credit": {
"value": ""
}
}
},
"3600b4df-9958-4f95-9c02-0eca0b790f85": {
"inputs": {
"date": {
"value": "2020-08-22"
},
"other_bill_id": {
"value": "check-1919"
},
"reference": {
"value": "withdrawals_journal_short"
},
"debit": {
"value": "67596.84"
}
}
}
}
}
}
}
}
},
"clients_subledger": {
"tables": {
"client_15": {
"sections": {
"default": {
"rowsIndex": [
"97792d10-a5ba-4018-baad-81526f2e9e54",
"b82f9546-587c-4eef-876c-d87e3eb96db1"
],
"rows": {
"97792d10-a5ba-4018-baad-81526f2e9e54": {
"inputs": {
"date": {
"value": "2020-05-12"
},
"bill_id": {
"value": "1920"
},
"reference": {
"value": "sales_journal_short"
},
"debit": {
"value": "68847.91"
},
"balance": {
"value": "68847.91"
},
"debit_credit": {
"value": "debit_short"
}
}
},
"b82f9546-587c-4eef-876c-d87e3eb96db1": {
"inputs": {
"other_bill_id": {
"value": "check-1755"
},
"reference": {
"value": "cashings_journal_short"
},
"credit": {
"value": "68847.91"
},
"date": {
"value": "2020-06-11"
}
}
}
}
}
}
}
}
},
"sales_journal": {
"tables": {
"default": {
"sections": {
"default": {
"rowsIndex": [
"72b6098f-49da-4fa1-a937-69b18aca2918"
],
"rows": {
"72b6098f-49da-4fa1-a937-69b18aca2918": {
"inputs": {
"date": {
"value": "2020-05-12"
},
"company_uid": {
"value": "client_15"
},
"report_to_account": {
"value": "1"
},
"bill_id": {
"value": "1920"
},
"clients": {
"value": "68847.91"
},
"sales": {
"value": "59880.76"
},
"tps_to_pay": {
"value": "2994.04"
},
"tvq_to_pay": {
"value": "5973.11"
}
}
}
}
}
}
}
}
},
"cashings_journal": {
"tables": {
"default": {
"sections": {
"default": {
"rowsIndex": [
"5da0cd48-15ef-4770-88b2-4b696ac93557",
"8a3d0e7c-80a6-45f5-8715-1e9fdefdd316"
],
"rows": {
"5da0cd48-15ef-4770-88b2-4b696ac93557": {
"inputs": {
"report_to_account": {
"value": "1"
},
"date": {
"value": "2020-06-11"
},
"company_uid": {
"value": "client_15"
},
"bill_id": {
"value": "1755"
},
"cashings": {
"value": "68847.91"
},
"clients": {
"value": "68847.91"
}
}
},
"8a3d0e7c-80a6-45f5-8715-1e9fdefdd316": {
"inputs": {
"company_uid": {
"value": "our_retail_sales"
},
"date": {
"value": "2020-08-28"
},
"cashings": {
"value": "2701.52"
},
"sales": {
"value": "2349.66"
},
"tps_to_pay": {
"value": "117.48"
},
"tvq_to_pay": {
"value": "234.38"
},
"report_to_account": {
"value": "1"
}
}
}
}
}
}
}
}
},
"ledger": {
"tables": {
"clients": {
"sections": {
"default": {
"rowsIndex": [
"fa840a02-81b5-4881-8add-503c9f6258cf",
"0dac078b-6ecf-4a40-bade-a183f31800d4"
],
"rows": {
"fa840a02-81b5-4881-8add-503c9f6258cf": {
"inputs": {
"date": {
"value": "2020-08-31"
},
"reference": {
"value": "sales_journal_short"
},
"debit": {
"value": "68847.91"
},
"balance": {
"value": "68847.91"
},
"debit_credit": {
"value": "debit_short"
}
}
},
"0dac078b-6ecf-4a40-bade-a183f31800d4": {
"inputs": {
"credit": {
"value": "68847.91"
},
"reference": {
"value": "cashings_journal_short"
},
"date": {
"value": "2020-08-31"
}
}
}
}
}
}
},
"sales": {
"sections": {
"default": {
"rowsIndex": [
"5559f52d-4629-40e4-b51e-84556d81006f",
"0f417b99-9b01-454b-ac47-767d4adbb32c",
"6648f48e-aac6-454b-88d3-e9a868c0e783"
],
"rows": {
"5559f52d-4629-40e4-b51e-84556d81006f": {
"inputs": {
"date": {
"value": "2020-08-31"
},
"reference": {
"value": "sales_journal_short"
},
"credit": {
"value": "59880.76"
},
"balance": {
"value": "59880.76"
},
"debit_credit": {
"value": "credit_short"
}
}
},
"0f417b99-9b01-454b-ac47-767d4adbb32c": {
"inputs": {
"credit": {
"value": "2349.66"
},
"reference": {
"value": "cashings_journal_short"
},
"date": {
"value": "2020-08-31"
},
"balance": {
"value": "62230.42"
},
"debit_credit": {
"value": "credit_short"
}
}
},
"6648f48e-aac6-454b-88d3-e9a868c0e783": {
"inputs": {
"debit": {
"value": "62230.42"
},
"reference": {
"value": "general_journal_short"
},
"date": {
"value": "2020-08-31"
}
}
}
}
}
}
},
"tps_to_pay": {
"sections": {
"default": {
"rowsIndex": [
"90b193c3-4de1-444d-8ea7-6275b5a0bae8",
"5d127cc7-3eb2-49a5-b1a7-9aaaa42e870f"
],
"rows": {
"90b193c3-4de1-444d-8ea7-6275b5a0bae8": {
"inputs": {
"credit": {
"value": "2994.04"
},
"reference": {
"value": "sales_journal_short"
},
"date": {
"value": "2020-08-31"
},
"balance": {
"value": "2994.04"
},
"debit_credit": {
"value": "credit_short"
}
}
},
"5d127cc7-3eb2-49a5-b1a7-9aaaa42e870f": {
"inputs": {
"credit": {
"value": "117.48"
},
"debit_credit": {
"value": "credit_short"
},
"reference": {
"value": "cashings_journal_short"
},
"date": {
"value": "2020-08-31"
},
"balance": {
"value": "3111.52"
}
}
}
}
}
}
},
"tvq_to_pay": {
"sections": {
"default": {
"rowsIndex": [
"a419a7bd-dcfe-4164-b06c-81d03535feca",
"05529076-f6ab-4477-9a8d-9732689af6ac"
],
"rows": {
"a419a7bd-dcfe-4164-b06c-81d03535feca": {
"inputs": {
"credit": {
"value": "5973.11"
},
"balance": {
"value": "5973.11"
},
"debit_credit": {
"value": "credit_short"
},
"reference": {
"value": "sales_journal_short"
},
"date": {
"value": "2020-08-31"
}
}
},
"05529076-f6ab-4477-9a8d-9732689af6ac": {
"inputs": {
"credit": {
"value": "234.38"
},
"reference": {
"value": "cashings_journal_short"
},
"date": {
"value": "2020-08-31"
},
"debit_credit": {
"value": "credit_short"
},
"balance": {
"value": "6207.49"
}
}
}
}
}
}
},
"salaries": {
"sections": {
"default": {
"rowsIndex": [
"605e8613-3ee9-4c17-85a7-8e4e65592eb6",
"27aa78fb-152b-450a-aa0b-308b907e778c"
],
"rows": {
"605e8613-3ee9-4c17-85a7-8e4e65592eb6": {
"inputs": {
"debit": {
"value": "648.66"
},
"balance": {
"value": "648.66"
},
"debit_credit": {
"value": "debit_short"
},
"reference": {
"value": "payroll_journal_short"
},
"date": {
"value": "2020-08-31"
}
}
},
"27aa78fb-152b-450a-aa0b-308b907e778c": {
"inputs": {
"credit": {
"value": "648.66"
},
"reference": {
"value": "general_journal_short"
},
"date": {
"value": "2020-08-31"
}
}
}
}
}
}
},
"rrq_to_pay": {
"sections": {
"default": {
"rowsIndex": [
"631e4938-0213-4699-88cd-efee2eab5c0e"
],
"rows": {
"631e4938-0213-4699-88cd-efee2eab5c0e": {
"inputs": {
"credit": {
"value": "38.27"
},
"balance": {
"value": "38.27"
},
"debit_credit": {
"value": "credit_short"
},
"reference": {
"value": "payroll_journal_short"
},
"date": {
"value": "2020-08-31"
}
}
}
}
}
}
},
"rqap_to_pay": {
"sections": {
"default": {
"rowsIndex": [
"014b8383-ec9f-40d5-a40f-37b09c9a130f"
],
"rows": {
"014b8383-ec9f-40d5-a40f-37b09c9a130f": {
"inputs": {
"credit": {
"value": "3.20"
},
"balance": {
"value": "3.20"
},
"debit_credit": {
"value": "credit_short"
},
"reference": {
"value": "payroll_journal_short"
},
"date": {
"value": "2020-08-31"
}
}
}
}
}
}
},
"employment_insurance_to_pay": {
"sections": {
"default": {
"rowsIndex": [
"e3141192-e259-4239-a8b3-94d0911a6f3f"
],
"rows": {
"e3141192-e259-4239-a8b3-94d0911a6f3f": {
"inputs": {
"date": {
"value": "2020-08-31"
},
"reference": {
"value": "payroll_journal_short"
},
"credit": {
"value": "7.65"
},
"balance": {
"value": "7.65"
},
"debit_credit": {
"value": "credit_short"
}
}
}
}
}
}
},
"provincial_tax_to_pay": {
"sections": {
"default": {
"rowsIndex": [
"c2aaaf47-9d93-479c-8cdf-f05f9c017c7f"
],
"rows": {
"c2aaaf47-9d93-479c-8cdf-f05f9c017c7f": {
"inputs": {
"debit_credit":
},
"balance": {
"value": "97.30"
},
"credit": {
"value": "97.30"
},
"reference": {
"value": "payroll_journal_short"
},
"date": {
"value": "2020-08-31"
}
}
}
}
}
}
},
"federal_tax_to_pay": {
"sections": {
"default": {
"rowsIndex": [
"325166c7-167a-4538-94dd-82a30e1c8c6f"
],
"rows": {
"325166c7-167a-4538-94dd-82a30e1c8c6f": {
"inputs": {
"balance": {
"value": "97.30"
},
"credit": {
"value": "97.30"
},
"debit_credit": {
"value": "credit_short"
},
"reference": {
"value": "payroll_journal_short"
},
"date": {
"value": "2020-08-31"
}
}
}
}
}
}
},
"salaries_to_pay": {
"sections": {
"default": {
"rowsIndex": [
"0d3ea85c-29f9-45d0-a9a3-e369e26fb59d",
"472d65a3-ea4d-4e7a-8682-9a4212b0c7b2"
],
"rows": {
"0d3ea85c-29f9-45d0-a9a3-e369e26fb59d": {
"inputs": {
"credit": {
"value": "404.94"
},
"balance": {
"value": "404.94"
},
"debit_credit": {
"value": "credit_short"
},
"reference": {
"value": "payroll_journal_short"
},
"date": {
"value": "2020-08-31"
}
}
},
"472d65a3-ea4d-4e7a-8682-9a4212b0c7b2": {
"inputs": {
"debit": {
"value": "404.94"
},
"reference": {
"value": "withdrawals_journal_short"
},
"date": {
"value": "2020-08-31"
}
}
}
}
}
}
},
"cashings": {
"sections": {
"default": {
"rowsIndex": [
"a1090fff-c9b1-4ad4-af6c-53ed4635d08d",
"7595b2dc-3256-4c5c-a70c-d5ae9becf2d4"
],
"rows": {
"a1090fff-c9b1-4ad4-af6c-53ed4635d08d": {
"inputs": {
"credit": {
"value": "68001.78"
},
"balance": {
"value": "68001.78"
},
"debit_credit": {
"value": "credit_short"
},
"reference": {
"value": "withdrawals_journal_short"
},
"date": {
"value": "2020-08-31"
}
}
},
"7595b2dc-3256-4c5c-a70c-d5ae9becf2d4": {
"inputs": {
"debit": {
"value": "71549.43"
},
"balance": {
"value": "3547.65"
},
"debit_credit": {
"value": "debit_short"
},
"reference": {
"value": "cashings_journal_short"
},
"date": {
"value": "2020-08-31"
}
}
}
}
}
}
},
"providers": {
"sections": {
"default": {
"rowsIndex": [
"403da98b-72ef-4b15-b0d3-62ecea118478",
"1dc24abc-f2e0-4e90-8fcd-a2ef721adceb"
],
"rows": {
"403da98b-72ef-4b15-b0d3-62ecea118478": {
"inputs": {
"debit": {
"value": "67596.84"
},
"balance": {
"value": "67596.84"
},
"debit_credit": {
"value": "debit_short"
},
"reference": {
"value": "withdrawals_journal_short"
},
"date": {
"value": "2020-08-31"
}
}
},
"1dc24abc-f2e0-4e90-8fcd-a2ef721adceb": {
"inputs": {
"credit": {
"value": "67596.84"
},
"date": {
"value": "2020-08-31"
},
"reference": {
"value": "purchases_journal_short"
}
}
}
}
}
}
},
"purchases": {
"sections": {
"default": {
"rowsIndex": [
"4aafac5f-e169-4277-b4fd-536b2853a049",
"349a39b5-f175-4a83-aa0e-c7776699bbef"
],
"rows": {
"4aafac5f-e169-4277-b4fd-536b2853a049": {
"inputs": {
"debit": {
"value": "58792.64"
},
"balance": {
"value": "58792.64"
},
"debit_credit": {
"value": "debit_short"
},
"reference": {
"value": "purchases_journal_short"
},
"date": {
"value": "2020-08-31"
}
}
},
"349a39b5-f175-4a83-aa0e-c7776699bbef": {
"inputs": {
"reference": {
"value": "general_journal_short"
},
"date": {
"value": "2020-08-31"
},
"credit": {
"value": "58792.64"
}
}
}
}
}
}
},
"tps_to_receive": {
"sections": {
"default": {
"rowsIndex": [
"6c856c2a-52ed-425a-a00c-6b9200cf26a0"
],
"rows": {
"6c856c2a-52ed-425a-a00c-6b9200cf26a0": {
"inputs": {
"debit": {
"value": "2939.63"
},
"reference": {
"value": "purchases_journal_short"
},
"date": {
"value": "2020-08-31"
},
"balance": {
"value": "2939.63"
},
"debit_credit": {
"value": "debit_short"
}
}
}
}
}
}
},
"tvq_to_receive": {
"sections": {
"default": {
"rowsIndex": [
"8e3f5666-6e28-4b52-944e-e77f9bd7b25d"
],
"rows": {
"8e3f5666-6e28-4b52-944e-e77f9bd7b25d": {
"inputs": {
"debit": {
"value": "5864.57"
},
"balance": {
"value": "5864.57"
},
"debit_credit": {
"value": "debit_short"
},
"reference": {
"value": "purchases_journal_short"
},
"date": {
"value": "2020-08-31"
}
}
}
}
}
}
},
"summary_results": {
"sections": {
"default": {
"rowsIndex": [
"8ae25bde-0008-4500-bfc9-d86c0ed7cd83",
"07d0de0f-c060-4e7e-870a-398253f0dcf4",
"b28de293-5fed-44f3-b8b8-63ec1e3c3faa"
],
"rows": {
"8ae25bde-0008-4500-bfc9-d86c0ed7cd83": {
"inputs": {
"reference": {
"value": "general_journal_short"
},
"date": {
"value": "2020-08-31"
},
"credit": {
"value": "62230.42"
},
"balance": {
"value": "62230.42"
},
"debit_credit": {
"value": "credit_short"
}
}
},
"07d0de0f-c060-4e7e-870a-398253f0dcf4": {
"inputs": {
"date": {
"value": "2020-08-31"
},
"reference": {
"value": "general_journal_short"
},
"debit": {
"value": "59441.30"
},
"balance": {
"value": "2789.12"
},
"debit_credit": {
"value": "credit_short"
}
}
},
"b28de293-5fed-44f3-b8b8-63ec1e3c3faa": {
"inputs": {
"reference": {
"value": "general_journal_short"
},
"date": {
"value": "2020-08-31"
},
"debit": {
"value": "2789.12"
}
}
}
}
}
}
},
"our_company_capital": {
"sections": {
"default": {
"rowsIndex": [
"3417681b-e40a-4a31-8da9-546666cab847"
],
"rows": {
"3417681b-e40a-4a31-8da9-546666cab847": {
"inputs": {
"credit": {
"value": "2789.12"
},
"balance": {
"value": "2789.12"
},
"debit_credit": {
"value": "credit_short"
},
"reference": {
"value": "general_journal_short"
},
"date": {
"value": "2020-08-31"
}
}
}
}
}
}
}
}
},
"trial_balance": {
"tables": {
"default": {
"sections": {
"default": {
"rowsIndex": [
"d7137ecd-59b3-4886-ada8-84c3cb87c165",
"282f36e3-8efb-42b9-aa99-04f8a276e04c",
"673b9089-69ae-471d-adf0-6135f221ef4f",
"03d70141-af72-4d8f-8bf6-3a6c3e6992f9",
"afef2bd4-ce4a-40f2-8639-58f55c34e049",
"0fd3733f-1b0d-4bde-9d01-ab0e75fbaed0",
"48c16621-000b-4e8e-b6b5-5a3a1027cb6b",
"902a1eea-186d-4a55-a880-01905a04834a",
"f4c5eaad-9f97-4ace-9172-18d71f1a51f4",
"65b100fc-6c9c-4384-b0b5-b8baafec345b",
"a060b654-77b4-4ce6-854a-29bfc49630ac",
"5933c3e2-7624-49c6-a04e-9bae879433df",
"7107e62a-3d97-46f1-8288-da51a1a620ac",
"9480fb3a-a2d8-494e-8335-e72f2d827667",
"a160ab94-8494-4063-ab71-f245603a6b7e",
"53140098-e7ba-4790-89a4-813ee3b93ace",
"e58c3d8d-924c-4500-93a4-b084c5a13be5",
"7761dcc1-9f17-481e-907a-949d2ef21786",
"e7cdf168-a199-44e3-887f-8f536a31fe12",
"9d3bdce8-eae7-4395-a7ad-79f2b20aa875",
"ebd2fdef-6ea2-42d1-80ba-3f750eb028a5",
"d3eb1e1a-77e6-449a-a5ad-3d20ccc8b35f",
"819eed8e-5c49-4975-b4d8-3cbcca01a5b6",
"4d886dec-6101-4e57-9f1c-5d6d1dadac57",
"afdffb3c-0dbe-4aa3-a8c8-5266c797a357"
],
"rows": {
"d7137ecd-59b3-4886-ada8-84c3cb87c165": {
"inputs": {
"account_nbr": {
"value": "1010"
},
"account_name": {
"value": "cashings"
},
"debit": {
"value": "3547.65"
}
}
},
"282f36e3-8efb-42b9-aa99-04f8a276e04c": {
"inputs": {
"account_nbr": {
"value": "1100"
},
"account_name": {
"value": "clients"
}
}
},
"673b9089-69ae-471d-adf0-6135f221ef4f": {
"inputs": {
"account_nbr": {
"value": "1105"
},
"account_name": {
"value": "tps_to_receive"
},
"credit": {
"value": ""
},
"debit": {
"value": "2939.63"
}
}
},
"03d70141-af72-4d8f-8bf6-3a6c3e6992f9": {
"inputs": {
"account_name": {
"value": "tvq_to_receive"
},
"account_nbr": {
"value": "1110"
},
"credit": {
"value": ""
},
"debit": {
"value": "5864.57"
}
}
},
"afef2bd4-ce4a-40f2-8639-58f55c34e049": {
"inputs": {
"account_nbr": {
"value": "2100"
},
"account_name": {
"value": "providers"
}
}
},
"0fd3733f-1b0d-4bde-9d01-ab0e75fbaed0": {
"inputs": {
"account_nbr": {
"value": "2305"
},
"account_name": {
"value": "tps_to_pay"
},
"credit": {
"value": "3111.52"
}
}
},
"48c16621-000b-4e8e-b6b5-5a3a1027cb6b": {
"inputs": {
"account_name": {
"value": "tvq_to_pay"
},
"account_nbr": {
"value": "2310"
},
"credit": {
"value": "6207.49"
}
}
},
"902a1eea-186d-4a55-a880-01905a04834a": {
"inputs": {
"account_nbr": {
"value": "2350"
},
"account_name": {
"value": "salaries_to_pay"
}
}
},
"f4c5eaad-9f97-4ace-9172-18d71f1a51f4": {
"inputs": {
"account_nbr": {
"value": "2360"
},
"account_name": {
"value": "rrq_to_pay"
},
"credit": {
"value": "38.27"
}
}
},
"65b100fc-6c9c-4384-b0b5-b8baafec345b": {
"inputs": {
"account_name": {
"value": "rqap_to_pay"
},
"account_nbr": {
"value": "2365"
},
"credit": {
"value": "3.20"
}
}
},
"a060b654-77b4-4ce6-854a-29bfc49630ac": {
"inputs": {
"account_name": {
"value": "provincial_tax_to_pay"
},
"account_nbr": {
"value": "2375"
},
"credit": {
"value": "97.30"
}
}
},
"5933c3e2-7624-49c6-a04e-9bae879433df": {
"inputs": {
"account_nbr": {
"value": "2390"
},
"account_name": {
"value": "employment_insurance_to_pay"
},
"credit": {
"value": "7.65"
}
}
},
"7107e62a-3d97-46f1-8288-da51a1a620ac": {
"inputs": {
"account_nbr": {
"value": "2395"
},
"account_name": {
"value": "federal_tax_to_pay"
},
"credit": {
"value": "97.30"
}
}
},
"9480fb3a-a2d8-494e-8335-e72f2d827667": {
"inputs": {
"account_nbr": {
"value": "3100"
},
"account_name": {
"value": "our_company_capital"
}
}
},
"a160ab94-8494-4063-ab71-f245603a6b7e": {
"inputs": {
"account_nbr": {
"value": "3200"
},
"account_name": {
"value": "our_company_deposit"
}
}
},
"53140098-e7ba-4790-89a4-813ee3b93ace": {
"inputs": {
"account_nbr": {
"value": "3300"
},
"account_name": {
"value": "our_company_withdrawals"
}
}
},
"e58c3d8d-924c-4500-93a4-b084c5a13be5": {
"inputs": {
"account_nbr": {
"value": "4120"
},
"account_name": {
"value": "services_given"
}
}
},
"7761dcc1-9f17-481e-907a-949d2ef21786": {
"inputs": {
"account_nbr": {
"value": "4500",
},
"account_name": {
"value": "sales"
},
"credit": {
"value": "62230.42"
}
}
},
"e7cdf168-a199-44e3-887f-8f536a31fe12": {
"inputs": {
"account_nbr": {
"value": "4510"
},
"account_name": {
"value": "sales_returns_and_discounts"
}
}
},
"9d3bdce8-eae7-4395-a7ad-79f2b20aa875": {
"inputs": {
"account_nbr": {
"value": "4520"
},
"account_name": {
"value": "sales_deductions"
}
}
},
"ebd2fdef-6ea2-42d1-80ba-3f750eb028a5": {
"inputs": {
"account_nbr": {
"value": "5100"
},
"account_name": {
"value": "purchases"
},
"debit": {
"value": "58792.64"
}
}
},
"d3eb1e1a-77e6-449a-a5ad-3d20ccc8b35f": {
"inputs": {
"account_nbr": {
"value": "5110"
},
"account_name": {
"value": "purchases_returns_and_discounts"
}
}
},
"819eed8e-5c49-4975-b4d8-3cbcca01a5b6": {
"inputs": {
"account_nbr": {
"value": "5120"
},
"account_name": {
"value": "purchases_deductions"
}
}
},
"4d886dec-6101-4e57-9f1c-5d6d1dadac57": {
"inputs": {
"account_nbr": {
"value": "5300"
},
"account_name": {
"value": "salaries"
},
"debit": {
"value": "648.66"
}
}
},
"afdffb3c-0dbe-4aa3-a8c8-5266c797a357": {
"inputs": {
"account_nbr": {
"value": "5999"
},
"account_name": {
"value": "summary_results"
}
}
}
}
}
}
}
},
"inputs": {
"end_date": {
"value": "2020-08-31"
}
}
},
"general_journal": {
"tables": {
"default": {
"sectionsIndex": [
"one",
"two",
"three"
],
"sections": {
"one": {
"rowsIndex": [
"53197625-1da8-48b0-9e2c-f30b28f25b83",
"c6272574-2b83-4ffa-9858-887c1f055964"
],
"rows": {
"c6272574-2b83-4ffa-9858-887c1f055964": {
"inputs": {
"reference": {
"value": "summary_results",
"options": {
"indent": 1
}
},
"date": {
"value": "2020-08-31"
},
"credit": {
"value": "62230.42"
},
"account_nbr": {
"value": "5999"
},
"debit": {
"value": ""
}
}
},
"53197625-1da8-48b0-9e2c-f30b28f25b83": {
"inputs": {
"reference": {
"value": "sales"
},
"date": {
"value": "2020-08-31"
},
"debit": {
"value": "62230.42"
},
"account_nbr": {
"value": "4500"
},
"credit": {
"value": ""
}
}
}
}
},
"two": {
"rowsIndex": [
"b00afda1-81f2-4ace-ad50-aec862b59f71",
"699ef4b8-84c0-42a0-a9c5-4938b1b2d7c0",
"4f850148-e023-429a-bcc8-0a661aaf54c1"
],
"rows": {
"4f850148-e023-429a-bcc8-0a661aaf54c1": {
"inputs": {
"reference": {
"value": "salaries",
"options": {
"indent": 1
}
},
"date": {
"value": "2020-08-31"
},
"credit": {
"value": "648.66"
},
"account_nbr": {
"value": "5300"
},
"debit": {
"value": ""
}
}
},
"b00afda1-81f2-4ace-ad50-aec862b59f71": {
"inputs": {
"date": {
"value": "2020-08-31"
},
"reference": {
"value": "summary_results"
},
"debit": {
"value": "59441.30"
},
"account_nbr": {
"value": "5999"
},
"credit": {
"value": ""
}
}
},
"699ef4b8-84c0-42a0-a9c5-4938b1b2d7c0": {
"inputs": {
"reference": {
"value": "purchases",
"options": {
"indent": 1
}
},
"date": {
"value": "2020-08-31"
},
"credit": {
"value": "58792.64"
},
"account_nbr": {
"value": "5100"
},
"debit": {
"value": ""
}
}
}
}
},
"three": {
"rowsIndex": [
"24aa16b0-b1c9-4153-985c-c0627c438075",
"c43b3409-9398-4fb1-a793-27d8117f6b9f"
],
"rows": {
"24aa16b0-b1c9-4153-985c-c0627c438075": {
"inputs": {
"debit": {
"value": "2789.12"
},
"date": {
"value": "2020-08-31"
},
"reference": {
"value": "summary_results"
},
"account_nbr": {
"value": "5999"
},
"credit": {
"value": ""
}
}
},
"c43b3409-9398-4fb1-a793-27d8117f6b9f": {
"inputs": {
"credit": {
"value": "2789.12"
},
"date": {
"value": "2020-08-31"
},
"reference": {
"value": "our_company_capital",
"options": {
"indent": 1
}
},
"account_nbr": {
"value": "3100"
},
"debit": {
"value": ""
}
}
}
}
}
}
}
}
},
"statement_income": {
"tables": {
"default": {
"sections": {
"operating_income": {
"rowsIndex": [
"35021938-f789-4741-8b57-69ce9587ef23"
],
"rows": {
"35021938-f789-4741-8b57-69ce9587ef23": {
"inputs": {
"text": {
"value": "sales"
},
"money2": {
"value": "62230.42",
"options": {
"underline": 1
}
},
"money1": {
"value": "62230.42"
}
}
}
}
},
"cost_of_goods_sold": {
"rowsIndex": [
"f7b1ca4f-a67b-4aef-814f-b98d847d82d4"
],
"rows": {
"f7b1ca4f-a67b-4aef-814f-b98d847d82d4": {
"inputs": {
"text": {
"value": "purchases"
},
"money2": {
"value": "58792.64",
"options": {
"underline": 1
}
},
"money1": {
"value": "58792.64",
"options": {
"underline": 1
}
}
}
}
}
},
"operating_expenses": {
"rowsIndex": [
"salaries"
],
"rows": {
"salaries": {
"inputs": {
"money2": {
"value": "648.66",
"options": {
"underline": 1
}
},
"money1": {
"value": "648.66",
"options": {
"underline": 1
}
},
"text": {
"value": "salaries"
}
}
}
}
}
},
"inputs": {
"end_date": {
"value": "2020-08-31"
},
"profit_margin": {
"value": "3437.78"
},
"net_profit": {
"value": "2789.12",
"options": {
"underline": 2
}
}
}
}
}
},
"statement_equity": {
"tables": {
"default": {
"sections": {
"default": {
"rowsIndex": [
"f760cbb2-b2ea-4dba-a802-38ca28cd78f2"
],
"rows": {
"f760cbb2-b2ea-4dba-a802-38ca28cd78f2": {
"inputs": {
"text": {
"value": "net_profit"
},
"money2": {
"value": "2789.12",
"options": {
"underline": 1
}
},
"money1": {
"value": "2789.12",
"options": {
"underline": 1
}
}
}
}
}
}
},
"inputs": {
"start_capital": {
"value": "152737.00"
},
"end_capital": {
"value": "155526.12",
"options": {
"underline": 2
}
}
}
}
}
},
"balance_sheet": {
"tables": {
"default": {
"sections": {
"fixed_assets": {
"rowsIndex": [],
"rows": {}
},
"active_short_term": {
"rowsIndex": [
"a55691ba-98bb-43f8-9d9e-a863e5c47752",
"228f9a4f-cfc9-47d6-a116-aea6e967d542",
"b2fe6bd8-684b-4568-adc0-a699dc6e00cb"
],
"rows": {
"228f9a4f-cfc9-47d6-a116-aea6e967d542": {
"inputs": {
"text": {
"value": "tps_to_receive"
},
"money2": {
"value": "2939.63"
}
}
},
"a55691ba-98bb-43f8-9d9e-a863e5c47752": {
"inputs": {
"text": {
"value": "cashings"
},
"money2": {
"value": "3547.65"
}
}
},
"b2fe6bd8-684b-4568-adc0-a699dc6e00cb": {
"inputs": {
"text": {
"value": "tvq_to_receive"
},
"money2": {
"value": "5864.57",
"options": {
"underline": 1
}
}
}
}
}
},
"passive_short_term": {
"rowsIndex": [
"ac741f08-8a90-4237-aa67-128ddcdbb2d1",
"84e08352-3983-4cd7-8fe8-cb8c82995370",
"e5795cfd-fc65-4c4c-a5a6-761ee88dde56",
"5596bd17-f932-4cff-9e36-15285be9626a",
"b23347f0-c647-4370-b366-5e65cebf5fda",
"b8f14675-28a0-4fbd-81ee-497bfbd8ac65",
"f93070f9-8ee6-45a0-b544-b8363d112a73"
],
"rows": {
"ac741f08-8a90-4237-aa67-128ddcdbb2d1": {
"inputs": {
"text": {
"value": "tps_to_pay"
},
"money2": {
"value": "3111.52"
}
}
},
"84e08352-3983-4cd7-8fe8-cb8c82995370": {
"inputs": {
"text": {
"value": "tvq_to_pay"
},
"money2": {
"value": "6207.49"
}
}
},
"b23347f0-c647-4370-b366-5e65cebf5fda": {
"inputs": {
"text": {
"value": "provincial_tax_to_pay"
},
"money2": {
"value": "97.30"
}
}
},
"e5795cfd-fc65-4c4c-a5a6-761ee88dde56": {
"inputs": {
"text": {
"value": "rrq_to_pay"
},
"money2": {
"value": "38.27"
}
}
},
"f93070f9-8ee6-45a0-b544-b8363d112a73": {
"inputs": {
"money2": {
"value": "97.30",
"options": {
"underline": 1
}
},
"text": {
"value": "federal_tax_to_pay"
}
}
},
"b8f14675-28a0-4fbd-81ee-497bfbd8ac65": {
"inputs": {
"text": {
"value": "employment_insurance_to_pay"
},
"money2": {
"value": "7.65"
}
}
},
"5596bd17-f932-4cff-9e36-15285be9626a": {
"inputs": {
"text": {
"value": "rqap_to_pay"
},
"money2": {
"value": "3.20"
}
}
}
}
}
},
"inputs": {
"fixed_assets_total": {
"value": "0.00",
"options": {
"underline": 1
}
},
"active_total": {
"value": "12351.85",
"options": {
"underline": 2
}
},
"passive_short_term_total": {
"value": "9562.73"
},
"passive_equity_total": {
"value": "165088.85",
"options": {
"underline": 2
}
},
"equity_unique_owner_total": {
"value": "155526.12",
"options": {
"underline": 1
}
},
"active_short_term_total": {
"value": "12351.85"
}
}
}
}
}
},
"bills": {
"billsData": {
"motor_company-send-127": {
"uid": "motor_company-send-127",
"billType": "provider",
"billData": {
"date": 1597979621257,
"paidDate": 1598140584033,
"billEntries": [
{
"seededProductUid": "p_chlore_machine",
"quantity": 29
},
{
"seededProductUid": "p_chlore",
"quantity": 112
},
{
"seededProductUid": "p_robot_cleaner",
"quantity": 8
},
{
"seededProductUid": "p_winter_canvas",
"quantity": 10
},
{
"seededProductUid": "p_inflatables",
"quantity": 5
},
{
"seededProductUid": "p_paper_ribbon",
"quantity": 192
},
{
"seededProductUid": "p_led",
"quantity": 42
},
{
"seededProductUid": "p_treated_wood",
"quantity": 5
},
{
"seededProductUid": "p_water_heater",
"quantity": 15
},
{
"seededProductUid": "p_ladder",
"quantity": 30
}
]
},
"senderCompanyUid": "motor_company",
"receiverCompanyUid": "our_company",
"billNumber": 127
},
"client_15-receive-1920": {
"uid": "client_15-receive-1920",
"billType": "client",
"billData": {
"date": 1589267904270,
"paidDate": 1591899124557,
"billEntries": [
{
"seededProductUid": "c_in_pool_21ft",
"quantity": 1
},
{
"seededProductUid": "c_in_pool_24ft",
"quantity": 1
},
{
"seededProductUid": "c_above_pool_24ft",
"quantity": 1
},
{
"seededProductUid": "c_above_pool_21ft",
"quantity": 1
},
{
"seededProductUid": "c_mid_pool_21ft",
"quantity": 1
},
{
"seededProductUid": "c_mid_pool_24ft",
"quantity": 1
}
]
},
"senderCompanyUid": "our_company",
"receiverCompanyUid": "client_15",
"billNumber": 1920
},
"client_15-send-1755": {
"uid": "client_15-send-1755",
"billType": "client_check",
"billData": {
"billUid": "client_15-receive-1920"
},
"senderCompanyUid": "client_15",
"receiverCompanyUid": "our_company",
"billNumber": 1755
},
"motor_company-receive-1919": {
"uid": "motor_company-receive-1919",
"billType": "provider_check",
"billData": {
"billUid": "motor_company-send-127"
},
"senderCompanyUid": "our_company",
"receiverCompanyUid": "motor_company",
"billNumber": 1919
},
"employee_1-receive-1921": {
"uid": "employee_1-receive-1921",
"billType": "employee",
"billData": {
"date": 1593648000000,
"paidDate": 1593648000000,
"billEntries": [
{
"seededProductUid": "e_salary_service",
"quantity": 38
}
]
},
"senderCompanyUid": "our_company",
"receiverCompanyUid": "employee_1",
"billNumber": 1921
},
"employee_1-receive-1918": {
"uid": "employee_1-receive-1918",
"billType": "employee_check",
"billData": {
"billUid": "employee_1-receive-1921"
},
"senderCompanyUid": "our_company",
"receiverCompanyUid": "employee_1",
"billNumber": 1918
},
"our_retail_sales-send-2020-08-28": {
"uid": "our_retail_sales-send-2020-08-28",
"billType": "retail_sales",
"billData": {
"date": 1598572800000,
"billEntries": [
{
"productDataUid": "rs_outdoor_sofa",
"price": 2349.66
}
]
},
"senderCompanyUid": "our_retail_sales",
"receiverCompanyUid": "our_company",
"billNumber": 13234
}
},
"billsOrder": [
"employee_1-receive-1921",
"employee_1-receive-1918",
"client_15-send-1755",
"motor_company-send-127",
"motor_company-receive-1919",
"client_15-receive-1920",
"our_retail_sales-send-2020-08-28"
],
"products": {
"p_chlore_machine": {
"productDataUid": "p_chlore_machine",
"price": 58.15
},
"p_chlore": {
"productDataUid": "p_chlore",
"price": 39.24
},
"p_robot_cleaner": {
"productDataUid": "p_robot_cleaner",
"price": 840.38
},
"p_winter_canvas": {
"productDataUid": "p_winter_canvas",
"price": 107.41
},
"p_inflatables": {
"productDataUid": "p_inflatables",
"price": 55.91
},
"p_paper_ribbon": {
"productDataUid": "p_paper_ribbon",
"price": 7.9
},
"p_led": {
"productDataUid": "p_led",
"price": 30.06
},
"p_treated_wood": {
"productDataUid": "p_treated_wood",
"price": 1811.31
},
"p_water_heater": {
"productDataUid": "p_water_heater",
"price": 1845.67
},
"p_ladder": {
"productDataUid": "p_ladder",
"price": 170.46
},
"c_in_pool_21ft": {
"productDataUid": "c_in_pool_21ft",
"price": 13310.04
},
"c_in_pool_24ft": {
"productDataUid": "c_in_pool_24ft",
"price": 14616.43
},
"c_above_pool_24ft": {
"productDataUid": "c_above_pool_24ft",
"price": 6061.06
},
"c_above_pool_21ft": {
"productDataUid": "c_above_pool_21ft",
"price": 5104.07
},
"c_mid_pool_21ft": {
"productDataUid": "c_mid_pool_21ft",
"price": 9050.26
},
"c_mid_pool_24ft": {
"productDataUid": "c_mid_pool_24ft",
"price": 11738.9
},
"e_salary_service": {
"productDataUid": "e_salary_service",
"price": 17.07
}
},
"companies": {
"motor_company": {
"companyDataUid": "motor_company",
"discount": 5
},
"our_company": {
"companyDataUid": "our_company",
"discount": 0
},
"client_15": {
"companyDataUid": "client_15",
"discount": 0
},
"employee_1": {
"companyDataUid": "employee_1",
"discount": 0
},
"our_retail_sales": {
"companyDataUid": "our_retail_sales",
"discount": 0
}
}
},
"dynamicDropdownsData": {
"provider": {
"motor_company": {
"condition": "0_0_n_30"
},
"piscina_max": {
"condition": "2_10_n_30"
}
},
"client": {
"client_15": {
"condition": "0_0_n_30"
}
}
}
}
}
}
Création du corrigé Acc1
Étape 1: Trier les factures selon leur type
Les factures triées seront stocker dans un dictionnaire
Étape 2: Remplir les journaux avec les factures
1. Journals des achats (facture de type: "provider")

- Pour chacune des facture de type "provider", ajouter une row.
- (2pts) Date ->Date écrite sur la facture
- (2pts) Client à créditer -> Nom du fournisseur
- (1pts) Report au compte -> si la row a été reporter au Grand Livre aux.
- (Identifiant de la row) Facture -> le numero de la facture
- (4pts) Fournisseurs (crédit) -> le "Total" de la facture
- (4pts) Achats (débit) -> le "Sous-total" de la facture
- (2pts) Rendus et ravais sur achats (crédit) -> le rabais de la facture
- (2pts) TPS à recevoir (débit) -> le "TPS (5%)" de la facture
- (2pts) TVQ à recevoir (débit) -> le "TVQ (9.975%)" de la facture
2. Journals des ventes (facture de type: "client")

- Pour chacune des facture de type "client", ajouter une row.
- (2pts) Date ->Date écrite sur la facture
- (2pts) Client à débiter-> Nom du client
- (1pts) Report au compte -> si la row a été reporter au Grand Livre aux.
- (Identifiant de la row) Facture -> le numero de la facture
- (4pts) Clients (débit) -> le "Total" de la facture
- (4pts) Ventes (crédit) -> le "Sous-total" de la facture
- (2pts) Rendus et rabais sur ventes -> le rabais de la facture
- (2pts) TPS à payer (crédit) -> le "TPS (5%)" de la facture
- (2pts) TVQ à payer (crédit) -> le "TVQ (9.975%)" de la facture
3. Journals des encaissements (facture de type: "client_check" et "retail_sales")

- Pour chacune des facture de type "client_check", ajouter une row.
- (2pts) Date ->Date écrite sur la facture
- (2pts) Nom du client ou explications -> Nom du client inscrit dans la section "Description"
- (2pts) Numéro du chèque -> le numero de chèque inscrit dans la section "Description"
- (2pts) Report au compte -> si la row a été reporter au Grand Livre aux.
- (2pts) Encaisse (débit) -> le montant inscrit dans la section "Total"
- (2pts) Clients (crédit) -> le montant inscrit dans la section "Total"
- Pour chacune des facture de type "retail_sales", ajouter une row.
- Date ->Date écrite sur la facture
- Nom du client ou explications -> "Ventes au comptant"
- Report au compte -> si la row a été reporter au Grand Livre aux.
- Encaisse (débit) -> le montant inscrit dans la section "Total"
- Ventes (crédit) -> le montant doit être calculer en retirant les taxes du "Total" ("Total" / 1.14975)
- TPS à payer (crédit) -> le montant doit être calculer (montant de ventes * 0.05)
- TVQ à payer (crédit) -> le montant doit être calculer (montant de ventes * 0.09975)
4. Journals des Décaissements (facture de type: "provider_check" et "employee_check")

- Pour chacune des facture de type "provider_check", ajouter une row.
- Date ->Date écrite sur la facture
- Nom du fournisseur ou du bénéficiaire -> Nom du Fournisseurs inscrit après "Payer à l'ordre de"
- Numéro du chèque -> le numero de chèque
- Report au compte -> si la row a été reporter au Grand Livre aux.
- Encaisse (crédit) -> le montant inscrit dans l'encadré à droite
- Fournisseurs (débit) -> le montant inscrit dans l'encadré à droite
- Pour chacune des facture de type "employee_check", ajouter une row.
- Date ->Date écrite sur la facture
- Nom du fournisseur ou du bénéficiaire -> Nom du Fournisseurs inscrit après "Payer à l'ordre de"
- Numéro du chèque -> le numero de chèque
- Report au compte -> si la row a été reporter au Grand Livre aux.
- Encaisse (crédit) -> le montant inscrit dans l'encadré à droite
- Salaires à payer (débit) -> le montant inscrit dans l'encadré à droite
5. Journals des salaires(facture de type: "employee")


- Pour chacune des facture de type "employee", ajouter une row.
- Date -> Date écrite sur la facture
- Nom du salarié -> Nom de l'employée écrit sous "Émise à"
- Taux horaire -> montant dans la section "Taux horaire" de la facture
- Nombre d'heures -> montant dans la section "Nombre d'heures" de la facture
- Salaires (débit) -> "Salaire brut" de la facture
- RRQ à payer (crédit) -> "RRQ" dans la secton "Retenus" de la facture
- RQAP à payer (crédit) -> "RQAP" dans la secton "Retenus" de la facture
- Assurance-emploi à payer (crédit) -> "Assurance-emploi" dans la secton "Retenus" de la facture
- Impôt provincial à payer (crédit) -> "Impôt provincial" dans la secton "Retenus" de la facture
- Impôt fédéral à payer (crédit) -> "Impôt fédéral" dans la secton "Retenus" de la facture
- Salaires à payer (crédit) -> "Salaire net" de la facture
- Numéro du relevé de paie -> le numéro de relevé de paie écrit sur la facture en haut à droite
Étape 3: Remplir les grands livres auxiliaires
1. Grand livre auxiliaire des fournisseurs


- Pour chacune des rows qui affecte un fournisseur dans le journal des achats/décaissements, ajouter une row. (les rows doivent être trier par date)
- Date -> Date de la row de référence
- Facture -> Si la row de référence vient du Journal des achats, écrire le numéro de la facture
- Libellé -> Si la row de référence vient du Journals des décaissements, écrire si c'est un chèque ou une note de crédit, et écrire le numéro de la facture
- Référence -> D'où vient la row de référence
- Débit -> Si la colonne de fournisseur de la row de référence est du type "débit", écrire le même montant
- Crédit -> Si la colonne de fournisseur de la row de référence est du type "crédit", écrire le même montant
- Solde -> montant du "solde" de la row précédente +/- le montant de débit/crédit de la row actuel
- Dt / Ct -> si le montant du solde est en Débit ou en Crédit
2. Grand livre auxiliaire des clients
- Pour chacune des rows qui affecte un fournisseur dans le journal des ventes/encaissements, ajouter une row. (les rows doivent être trier par date)
- Date -> Date de la row de référence
- Facture -> Si la row de référence vient du Journal des ventes, écrire le numéro de la facture
- Libellé -> Si la row de référence vient du Journals des encaissements, écrire si c'est un chèque ou une note de crédit, et écrire le numéro de la facture
- Référence -> D'où vient la row de référence
- Débit -> Si la colonne de fournisseur de la row de référence est du type "débit", écrire le même montant
- Crédit -> Si la colonne de fournisseur de la row de référence est du type "crédit", écrire le même montant
- Solde -> montant du "solde" de la row précédente +/- le montant de débit/crédit de la row actuel
- Dt / Ct -> si le montant du solde est en Débit ou en Crédit
- Pour chacune des rows qui affecte un fournisseur dans le journal des ventes/encaissements, ajouter une row. (les rows doivent être trier par date)
Étape 3: Remplir le grand livre et le journal général
1. Grand livre


- Remplir chacun des comptes disponible à l'aide des montants total afficher dans l'avant dernière ligne des journals (Achats, Ventes, Encaissements, Décaissements, Salaires)
- Date -> Date de la fin de l'exercise financier
- Référence -> de quel Journal vient le montant
- Débit ou Crédit -> Selon le type de la colonne du journals en question, écrire le montant du total (Avant dernière ligne)
- Solde -> montant du "solde" de la row précédente +/- le montant de débit/crédit de la row actuel
- Dt / Ct -> si le montant du solde est en Débit ou en Crédit
2. Journal général
- Remplir le journal général à l'aide du solde final des comptes dans le Grand libre.
- 3 Sections qui regroupe des compte differents devront être présent: Produits, Charges et Équité.
- L'ordre de la section de produits ou de charges n'a pas d'importance mais, la section d'équité doit être à la fin.
- Dans le cas de la section de produits, les comptes doivent être en premier dans la section sans indentation et le sommaire des résultats doit être à la fin avec un niveau d'indentation de 1
- Pour le cas de la section de charges, c'est l'inverse, le sommaire des résultats doit être en premier sans indentation tandis que les comptes doivent être à la fin avec un niveau d'indentation de 1
- Pour le cas de la section d'équité, le placement dans la section dépend de si les charges sont plus haute que les produits. Si les Produits sont plus grand, le sommaire des résultats est en premier sans indentation et le compte de capitaux est en deuxième avec un niveau d'indentation de 1. Si les Charges sont plus grande, la section des capitaux est en premier sans indentation et le sommaire des résultats est en deuxième avec un niveau d'indentation de 1
- La valeur à écrire dans la section équité est la valeur absolue des produits moins les charges.
- Dans chaque section, l'entrée sur le sommaire des résultats sert à balancer la somme du reste de la section dans type opposée.
- Remplir une row
- Date -> date de fin de l'exercise financier
- Nom de compte -> Voir les informations en haut
- Numéro de compte -> numéro associé au nom du compte
- Débit -> Si le compte est de produits ou voir les informations en haut
- Crédit -> Si le compte est de charges ou voir les informations en haut
3. Grand livre (Suite)
- Pour chacune des lignes dans le journal général, ajouter une ligne dans le compte approprié du Grand livre
- Date -> Date de la fin de l'exercise financier
- Référence -> Journal général
- Débit ou Crédit -> Selon le type de la colonne du montant, écrire le montant.
- Solde -> montant du "solde" de la row précédente +/- le montant de débit/crédit de la row actuel
- Dt / Ct -> si le montant du solde est en Débit ou en
Étape 4: Remplir la balance de vérification
1. Balance de vérification

- Pour chaque compte du grand livre, ajouter une ligne pour le compte correspondant (Trier par numéro de compte)
- Numéro de compte -> Numéro du compte
- Nom du compte -> Nom du compte
- Débit/Crédit -> Écrire le solde final du compte (Sans compter les lignes dont la référence est le journal général) dans la colonne que Dt/Ct indique et si le compte à un solde ne rien écrire dans aucun des deux champs
Étape 5: Remplir les états financiers
1. État des résultats
- Section Produits d'exploitation
- Ajouter une ligne pour chaque compte de produits et la valeur du compte dans l'input de gauche
- La dernière ligne de la section doit avoir le montant total de la section dans l'input de droite et avoir l'input de gauche avec un underline.
- Section Coût des marchandises vendues
- Ajouter une ligne pour chaque compte de charges (avec sous type Coût des marchandises vendues) et la valeur du compte dans l'input de gauche
- La dernière ligne de la section doit avoir le montant total de la section dans l'input de droite et avoir l'input de gauche et de droite avec un underline.
- Input de Marge bénéficiaire brute
- Le montant de l'input est calculé à l'aide du total de la section Produits d'exploitation moins le total de la section Coût des marchandises vendues
- Section Charges d'exploitation
- Ajouter une ligne pour chaque compte de charges (avec sous type Charges d'exploitation) et la valeur du compte dans l'input de gauche
- La dernière ligne de la section doit avoir le montant total de la section dans l'input de droite et avoir l'input de gauche et de droite avec un underline.
- Input de Bénéfice net
- Le montant de l'input est calculé à l'aide de l'input Marge bénéficiaire brute moins le total de la section Charges d'eploitation
- Avoir deux underline.
2. État des capitaux propres
- Input de capital au début de l'exercise financier
- Capitals au départ de l'états financiers
- Pour les lignes, ajouter une ligne par choses qui impact le capital finaux de l'entreprise.
- Écrire le montant de l'impact dans l'input de gauche
- La dernière ligne de la section doit avoir le montant total de la section dans l'input de droite et avoir l'input de gauche et de droite avec un underline.
- Input du capital à la fin de l'exercise financier
- Le montant de l'input est calculé à l'aide de l'input capital au début de l'exercise financier plus le total de la section Charges d'eploitation
3. Bilan
- Section d'Actif à court terme
- Ajouter une ligne pour chaque compte d'actif à court terme et la valeur du compte dans l'input de gauche
- La dernière ligne doit avoir un underline sur l'input de gauche
- Input de Total d'actif à court terme
- Le montant de l'input est calculé à l'aide du total de la Section d'actif à court terme
- Section d'Immobilisations
- Ajouter une ligne pour chaque compte d'Immobilisations et la valeur du compte dans l'input de gauche
- La dernière ligne doit avoir un underline sur l'input de gauche
- Input de Total d'immobilisations
- Le montant de l'input est calculé à l'aide du total de la Section d'immobilisations
- Doit avoir un underline
- Input de Total des actifs
- Le montant de l'input est calculé à l'aide du total de l'input de Total d'actif à court terme plus Input de Total d'immobilisations
- Doit avoir deux underline
- Section de passif à court terme
- Ajouter une ligne pour chaque compte de passif à court terme et la valeur du compte dans l'input de gauche
- La dernière ligne doit avoir un underline sur l'input de gauche
- Input de Total de passif à court terme
- Le montant de l'input est calculé à l'aide du total de la Section de passif à court terme
- Section Capitaux propres
- Avoir une ligne pour le et écrire le capitals final de l'entreprise dans l'input de droite et avoir un underline
- Input de Total des actifs
- Le montant de l'input est calculé à l'aide du total de l'input de Total de passif à court terme plus le total de la section Capitaux propres
- Doit avoir deux underline.
- Section d'Actif à court terme
- Le montant de l'input est calculé à l'aide de l'input capital au début de l'exercise financier plus le total de la section Charges d'eploitation
Pointage des differents champs
- (2pts) Date
- (Identifiant de la ligne) Fournisseur à créditer
- (1pts) Report au compte
- (Identifiant de la ligne) Facture
- (4pts) Fournisseurs (crédit)
- (4pts) Achats (débit)
- (2pts) Rendus et ravais sur achats (crédit)
- (2pts) TPS à recevoir (débit)
- (2pts) TVQ à recevoir (débit)
- (2pts) Date
- (Identifiant de la ligne) Client à débiter
- (1pts) Report au compte
- (Identifiant de la ligne) Facture
- (4pts) Clients (débit)
- (4pts) Ventes (crédit)
- (2pts) Rendus et rabais sur ventes
- (2pts) TPS à payer (crédit)
- (2pts) TVQ à payer (crédit)
- (2pts) Date ->Date écrite sur la facture
- (identifiant de la ligne) Nom du client ou explications
- (identifiant de la ligne) Numéro du chèque
- (1pts) Report au compte
- (4pts) Encaisse (débit)
- (4pts) Clients (crédit)
- (4pts) Ventes (crédit)
- (2pts) TPS à payer (crédit)
- (2pts) TVQ à payer (crédit)
- (2pts) Date
- (identifiant de la ligne) Nom du fournisseur ou du bénéficiaire
- (identifiant de la ligne) Numéro du chèque
- (1pts) Report au compte
- (4pts) Encaisse (crédit)
- (4pts) Fournisseurs (débit)
- (4pts) Salaires à payer (débit)

- (2pts) Date
- (2pts) Nom du salarié
- (2pts) Taux horaire
- (2pts) Nombre d'heures
- (2pts) Salaires (débit)
- (2pts) RRQ à payer (crédit)
- (2pts) RQAP à payer (crédit)
- (2pts) Assurance-emploi à payer (crédit)
- (2pts) Impôt provincial à payer (crédit)
- (2pts) Impôt fédéral à payer (crédit)
- (2pts) Salaires à payer (crédit)
- (identifiant de la ligne) Numéro du relevé de paie
- (2pts) Date
- (1pts) Numéro de compte
- (2pts) Nom de compte
- (2pts) Débit
- (2pts) Crédit
- (2pts) Date
- (2pts) Référence
- (2pts) Débit
- (2pts) Crédit
- (2pts) Solde
- (2pts) Dt / Ct

- (2pts) Date
- (identifiant de la ligne) Numéro de facture
- (identifiant de la ligne) Libellé
- (2pts) Référence
- (2pts) Débit
- (2pts) Crédit
- (2pts) Solde
- (2pts) Dt / Ct
- (identifiant de la ligne) Numéro de compte
- (identifiant de la ligne) nom de compte
- (2pts) Débit
- (2pts) Crédit
Inputs dans les sections avec des tabulations : 1pts chaque pour un total de 45% du modulePage
Inputs à droite des textes en gras : 1pts chaque pour un total de 25% du modulePage
10% du modulePage pour que les comptes soit dans les bonnes sections
20% du modulePage pour que les options des inputs soit bonnes ($, underline, signe négatif)
Inputs dans les sections avec des tabulations : 1pts chaque pour un total de 50% du modulePage
Inputs à droite des textes en gras : 1pts chaque pour un total de 30% du modulePage
20% du modulePage pour que les options des inputs soit bonnes ($, underline, signe négatif)
Inputs dans les sections avec des tabulations : 1pts chaque pour un total de 45% du modulePage
Inputs à droite des textes en gras : 1pts chaque pour un total de 25% du modulePage
10% du modulePage pour que les comptes soit dans les bonnes sections
20% du modulePage pour que les options des inputs soit bonnes ($, underline, signe négatif)
Préférences
Les dépendances sont présentés sous forme d'une condition.
Pour les préférences de type string, c'est l'une des valeurs possibles qui sera le uid inscrit dans la condition. (e.g. La condition products_company provient de la préférence our_company_type)
Pour les préférences de type int, la valeur attendue est inscrite sous forme de condition. (e.g. num_columns == 3)
Présentation des préférences
Préférences des modules
| Uid |
Wizard |
Type |
Valeur par défaut (constants) + Valeurs possibles |
Description + Dépendances |
|
our_company_type
|
✔ |
string |
products_company
Valeurs possibles
- products_company
- services_company
- products_and
_services_company
|
Choix du type de companie |
|
stock_type
|
✔ | string |
permanent_stock
Valeurs possibles
- permanent_stock
- periodic_stock
|
Choix du type de stock
Dépendances products_company || products_and_services_company
|
|
has_taxes
|
✔ | bool |
true
|
Contient des taxes à la consommation |
|
has_decimals
|
✔ | bool |
true
|
Contient des valeurs décimales (s'il y a lieu, 2 décimales par défaut)
Dépendances has_taxes |
|
has_deductions
|
✔ | bool |
true
|
Contient des escomptes sur ventes et achats (avec les conditions de paiement e.g. 2/10 n/30) |
|
uses_auxiliary_journals
|
✔ | bool |
true
|
Utiliser les journaux auxiliaires (ou le journal général) |
|
has_employees
|
✔ | bool |
true
|
La compagnie possède des employées et traite les paies |
|
has_credit_notes
|
✔ | bool |
true
|
Contient des rendus et rabais sur ventes et achats (notes de crédit) |
|
ignored_accounts
|
array | [ ] | Ignore les comptes du grand livre contenus dans la liste | |
|
hidden_accounts
|
array | [ ] | Cache les comptes du grand livre contenus dans la liste pour les étudiants. Les comptes sont utilisés dans la création du ou des contextes d'un module. Cette préférence est utile pour cacher des comptes qui ne sont vraiment pas utiles dans le contexte du module | |
|
accounts_uses_last_financial_statement
|
bool | false | Crée un contexte pour initialiser des données comme des valeurs | |
|
uses_accounting_closing
|
✔ | bool |
true
|
Procède à la clôture (Fermeture des comptes débiteurs/cérditeurs, etc.) |
|
unique_{client or provider}_preference
|
bool | false | Utilisation de client/fournisseur unique lors de la création des factures | |
|
last_year_partners_with_empty_balance
|
bool |
true
|
??? (Pas utilisé?) | |
|
uses_bill_id_in_general_journal
|
bool | false | Détermine si le journal général utilise la vielle correction (valeur : true) | |
|
uses_new_regularizations
|
bool | false | Utilisation de la nouvelle gestion des régularisations. La vielle version était utilisée pour l'ancien système des amortissements.
Dépendances uses_regularizations |
|
|
has_new_immobilizations
|
bool |
true
|
Détermine s'il y a une création de nouvelles immobilisations
Dépendances has_immobilizations |
|
|
has_new_contracts
|
bool |
true
|
Détermine s'il y a une création de nouveaux contrats
Dépendances uses_regularizations |
|
|
uses_regularizations
|
✔ | bool |
true
|
Procède aux écritures de clôture dans le journal général. (Amortissements, Charges payées d'avance, Produits perçus d'avance, Charges à payer et Produits à recevoir) **Exclut la régularisation des stocks |
|
pages
|
✔ | object | { } | Contient tous les settings de pages à écraser des originaux se trouvant dans pages_settings.json. La plupart du temps, ce sont les préférences de pages qui sont écrasées dans cet objet. |
|
affected_regularizations_reports
|
array? | null | ??? | |
|
has_immobilizations
|
✔ | bool |
true
|
Contient des immobilisations (i.e. Équipement de bureau, Matériel roulant, Ameublement) |
|
practice_num_seeds
|
✔ | int | 0
Valeurs possibles
- 0 (infini)
- 1 à 10
|
Détermine le nombre de versions de modules. Avec une valeur de 0, chaque étudiant aura une version différente. |
|
summative_num_seeds
|
✔ | int | 0
Valeurs possibles
- 0 (infini)
- 1 à 10
|
Détermine le nombre de versions de modules. Avec une valeur de 0, chaque étudiant aura une version différente. |
|
has_helper_in_summative
|
✔ | bool |
true
|
Détermine si le mode sommatif du module contient des modèles et/ou aides-mémoires. (i.e. modèle des états financiers de l'an passé) Le mode formatif contient toujours les modèles et/ou aides-mémoires. |
|
scenario_accounts_view_type
|
✔ | string |
trial_balance Valeurs possibles
- trial_balance
- accounts_list
|
Détermine si les comptes initiaux sont affichés dans la fenêtre du scénario à l'aide d'une balance de vérification ou d'une liste alphabétique de comptes |
|
uses_taxes_payment_form
|
bool |
true
|
Inclut le rapport et la remise de taxe(s)
Dépendances has_taxes |
|
|
uses_stock_regularizations
|
bool |
true
|
Procède à la régularisation de stock
Dépendances products_company || products_and_services_company |
|
|
has_immobilizations_taxes_report
|
bool |
true
|
Procède à la création des pj et de l'écriture avec les taxes municipales et scolaires
Dépendances has_immobilizations && has_land_immobilizations && uses_regularizations
|
|
|
has_banking_transactions
|
bool |
true
|
Contient des transactions bancaires | |
|
has_land_immobilizations
|
bool |
true
|
Contient un ou des terrains (+ taxes municipales et scolaires)
Dépendances has_immobilizations |
Préférences des pages
| Page Uid | Uid |
Wizard |
Type |
Valeur par défaut (constants) + Valeurs possibles |
Description + Dépendances |
| all |
ignored_options
|
array | [ ]
(constants)
|
Les options d'inputs qui sont ignorées lors de la correction du module page (e.g. minus, indent, underline, etc.) | |
|
all
|
ignored_grading_column_uids
|
|
array |
[ ]
(constants)
|
Les colonnes du tableau qui sont ignorées lors de la correction du module page (e.g. Les colonnes des noms de comptes prédeterminés dans le chiffrier) |
| all |
ignored_grading_relation_uids
|
|
array |
[ ]
(constants)
|
Les uids relationnels qui sont ignorées lors de la correction du module page (e.g. start_stock_of_goods) ** Seulement utilisé dans le journal général et le grand livre |
| all |
money_tolerance_range
|
|
int |
1
(sim_settings)
|
Tolérance négative/positive de valeur inscrite par l'étudiant dans un champs de nombre entier d'argent |
|
balance_sheet
|
num_columns
|
✔ |
int |
2
(pages_settings)
Valeurs possibles
- 2 ou 3
|
Nombre de colonnes pour les calculs des valeurs des comptes (money column inputs) |
Dépendances
Comptes du grand livre
Se retrouvent dans accounts.json
| Uid |
Dépendances |
|
cashings
|
✖ |
|
temporary_investments
|
has_banking_transactions
|
|
clients
|
✖ |
|
gst_ca_qc_to_receive
|
has_taxes
|
|
qst_ca_qc_to_receive
|
has_taxes
|
|
hst_ca_on_to_receive
|
has_taxes
|
|
hst_ca_nb_to_receive
|
has_taxes
|
|
hst_ca_pe_to_receive
|
has_taxes
|
|
interest_to_receive
|
has_banking_transactions && uses_regularizations |
|
taxes_to_receive
|
has_taxes
|
|
stock_of_goods
|
products_company || products_and_services_company |
|
office_supplies
|
✖ |
|
insurance_paid_in_advance
|
uses_regularizations
|
|
municipal_taxes_paid_in_advance
|
has_immobilizations && has_land_immobilizations && uses_regularizations |
|
school_taxes_paid_in_advance
|
has_immobilizations && has_land_immobilizations && uses_regularizations |
|
publicity_paid_in_advance
|
uses_regularizations
|
|
rolling_stock
|
has_immobilizations
|
|
rolling_stock_cumulative_depreciation
|
has_immobilizations && uses_regularizations |
|
equipment
|
has_immobilizations
|
|
equipment_cumulative_depreciation
|
has_immobilizations && uses_regularizations |
|
furnishings
|
has_immobilizations
|
|
furnishings_cumulative_depreciation
|
has_immobilizations && uses_regularizations |
|
land
|
has_immobilizations && has_land_immobilizations |
|
bank_loan
|
has_banking_transactions
|
|
providers
|
✖ |
|
hst_ca_on_to_pay
|
has_taxes
|
|
hst_ca_nb_to_pay
|
has_taxes
|
|
hst_ca_pe_to_pay
|
has_taxes
|
|
gst_ca_qc_to_pay
|
has_taxes
|
|
qst_ca_qc_to_pay
|
has_taxes
|
|
taxes_to_pay
|
has_taxes
|
|
salaries_to_pay
|
has_employees
|
|
rrq_ca_qc_to_pay
|
has_employees
|
|
cpp_ca_qc_to_pay
|
has_employees
|
|
rqap_ca_qc_to_pay
|
has_employees
|
|
income_tax_provincial_ca_qc_to_pay
|
has_employees
|
|
employment_insurance_ca_qc_to_pay
|
has_employees
|
|
income_tax_federal_ca_qc_to_pay
|
has_employees
|
|
income_tax_provincial_ca_on_to_pay
|
has_employees
|
|
income_tax_provincial_ca_nb_to_pay
|
has_employees
|
|
income_tax_provincial_ca_pe_to_pay
|
has_employees
|
|
employment_insurance_ca_to_pay
|
has_employees
|
|
income_tax_federal_ca_nb_to_pay
|
has_employees
|
|
income_tax_federal_ca_to_pay
|
has_employees
|
|
interest_to_pay
|
has_banking_transactions && uses_regularizations |
|
sales_received_in_advance
|
uses_regularizations
|
|
services_given_received_in_advance
|
uses_regularizations
|
|
our_company_capital
|
✖ |
|
our_company_deposit
|
✖ |
|
our_company_withdrawals
|
✖ |
|
services_given
|
services_company || products_and_services_company |
|
interest_income
|
uses_regularizations
|
|
sales
|
products_company || products_and_services_company
|
|
sales_returns_and_discounts
|
has_credit_notes && (products_company || products_and_services_company)
|
|
sales_deductions
|
has_deductions && (products_company || products_and_services_company)
|
|
start_stock_of_goods
|
products_company || products_and_services_company |
|
purchases
|
products_company || products_and_services_company |
|
purchases_returns_and_discounts
|
has_credit_notes && (products_company || products_and_services_company) |
|
purchases_deductions
|
has_deductions && (products_company || products_and_services_company)
|
|
end_stock_of_goods
|
products_company || products_and_services_company |
|
salaries
|
has_employees
|
|
rent
|
✖ |
|
publicity
|
✖ |
|
office_charges
|
✖ |
|
maintenance_supplies_charges
|
services_company
|
|
municipal_taxes
|
has_immobilizations && has_land_immobilizations && uses_regularizations |
|
school_taxes
|
has_immobilizations && has_land_immobilizations && uses_regularizations |
|
insurance
|
✖ |
|
interests_charges
|
has_banking_transactions
|
|
bank_charges
|
has_banking_transactions
|
|
rolling_stock_depreciation
|
has_immobilizations && uses_regularizations
|
|
equipment_depreciation
|
has_immobilizations && uses_regularizations |
|
furnishings_depreciation
|
has_immobilizations && uses_regularizations |
|
summary_results
|
✖ |
Pièces justificatives
Se retrouvent dans bills_settings_definition.json et dans la fonction acc1_utils_create_bills.createBillsByType
| Uid |
Dépendances |
|
provider_upfront_payment
|
✖ |
|
provider
|
✖ |
|
provider_credit_note
|
has_credit_notes
|
|
provider_check
|
✖ |
|
client_upfront_payment
|
✖ |
|
client
|
✖ |
|
client_credit_note
|
has_credit_notes
|
|
client_check
|
✖ |
|
employee
|
has_employees
|
|
employee_check
|
has_employees
|
|
retail_sales
|
products_company || products_and_services_company
|
|
building_owner_misc_check
|
✖ |
|
insurance_provider_taxless_misc_check
|
✖ |
|
bank_charges_report
|
has_banking_transactions
|
|
bank_loan_report
|
has_banking_transactions && !uses_auxiliary_journals |
|
deposit_check
|
✖ |
|
withdrawals_check
|
✖ |
|
end_stock_of_goods_report
|
(products_company || products_and_services_company) && periodic_stock
|
|
rolling_stock_report
|
has_immobilizations && uses_regularizations |
|
equipment_report
|
has_immobilizations && uses_regularizations |
|
furnishings_report
|
has_immobilizations && uses_regularizations |
|
long_term_services_client_contracts_report
|
uses_regularizations
|
|
long_term_publicity_provider_contracts_report
|
uses_regularizations
|
|
long_term_insurance_provider_contracts_report
|
uses_regularizations
|
|
used_office_supplies_report
|
uses_regularizations
|
|
municipal_immobilizations_taxes_report
|
has_immobilizations && has_land_immobilizations && uses_regularizations |
|
school_immobilizations_taxes_report
|
has_immobilizations && has_land_immobilizations && uses_regularizations |
|
short_term_investment_contracts_report
|
has_banking_transactions && uses_regularizations
|
|
short_term_loan_contracts_report
|
has_banking_transactions && uses_regularizations |
|
employee_partial_report
|
has_employees && uses_regularizations
|
Pages
Se retrouvent dans pages_settings_definition.json
| Uid |
Dépendances |
|
purchases_journal
|
uses_auxiliary_journals |
|
sales_journal
|
uses_auxiliary_journals |
|
withdrawals_journal
|
uses_auxiliary_journals |
|
cashings_journal
|
uses_auxiliary_journals |
|
payroll_journal
|
uses_auxiliary_journals && has_employees |
|
providers_subledger
|
✖ |
|
clients_subledger
|
✖ |
|
stocks_subledger
|
(products_company || products_and_services_company) && permanent_stock |
|
general_journal
|
✖ |
|
ledger
|
✖ |
|
trial_balance_regularized_after_closure
|
✖ |
|
trial_balance_before_regularizations_and_closure
|
✖ |
|
trial_balance_regularized
|
✖ |
|
trial_balance_after_closure
|
✖ |
|
statement_income
|
✖ |
|
statement_equity
|
✖ |
|
balance_sheet
|
✖ |
|
accounting_journal
|
✖ |
|
taxes_payment_form
|
has_taxes && uses_taxes_payment_form |
|
employee_income_taxes_form
|
has_employees && manual_income_taxes |
|
employer_income_taxes_form
|
has_employees && manual_income_taxes |
Scenario Pages
Les dépendances se retrouvent dans modules.json
Seulement les scenario pages avec des conditions sont listées
| Uid |
Dépendances |
| context_with_helper | has_helper_in_summative |
| context_without_helper | !has_helper_in_summative |
| income_taxes | has_employees |
| trial_balance | trial_balance |
| accounts_list | accounts_list |
| statement_income | has_helper_in_summative |
| statement_equity | has_helper_in_summative |
| balance_sheet | has_helper_in_summative |
Élément de pages
Se retrouvent dans module_pages.json
Seulement les éléments avec des conditions sont listées
| Page Uid | Type | Uid |
Dépendances |
| purchases_journal | column_input |
purchases
|
products_company || products_and_services_company
|
|
purchases_returns_and_discounts
|
products_company || products_and_services_company |
||
|
maintenance_supplies_charges
|
services_company
|
||
| sales_journal | column_input |
sales
|
products_company || products_and_services_company
|
|
sales_returns_and_discounts
|
products_company || products_and_services_company
|
||
|
services_given
|
services_company || products_and_services_company
|
||
|
withdrawals_journal
|
column_input
|
purchases_deductions
|
products_company || products_and_services_company
|
|
purchases
|
products_company || products_and_services_company
|
||
|
maintenance_supplies_charges
|
services_company
|
||
|
cashings_journal
|
column_input |
sales_deductions
|
products_company || products_and_services_company
|
|
sales
|
products_company || products_and_services_company
|
||
|
services_given
|
services_company || products_and_services_company
|
||
|
general_journal
|
column_input
|
bill_id
|
uses_bill_id_in_general_journal
|
|
reference
|
uses_bill_id_in_general_journal
|
||
|
account_uid
|
!uses_bill_id_in_general_journal | ||
|
account_number
|
!uses_bill_id_in_general_journal | ||
|
section_structure
|
!uses_bill_id_in_general_journal | ||
|
ledger
|
column_input
|
wording
|
uses_auxiliary_journals
|
|
bill_id
|
!uses_auxiliary_journals | ||
|
statement_income
|
table_structure.
structure_items
|
gross_sales
|
products_company || products_and_services_company |
|
operating_income
|
products_company || products_and_services_company | ||
|
operating_income_service
|
services_company
|
||
|
operating_income_service_total
|
services_company
|
||
|
cost_of_goods_sold
|
products_company || products_and_services_company | ||
|
profit_margin
|
products_company || products_and_services_company | ||
|
other_operating_income
|
products_and_services_company
|
||
|
operating_expenses
|
products_company || products_and_services_company | ||
|
operating_expenses_service
|
services_company
|
||
|
operating_expenses_service_total
|
services_company | ||
|
column_inputs
|
money4
|
products_company || products_and_services_company | |
|
money3
|
products_company || products_and_services_company | ||
|
balance_sheet
|
table_structure.
structure_items
|
immobilization
|
has_immobilizations
|
|
immobilization_total
|
has_immobilizations
|
||
|
column_inputs
|
money3
|
num_columns == 3
|
StaticData
| Uid |
Google Sheet |
Description |
|
scenario
|
✔ |
Contient tous les scénarios spécifiques à chaque module. Les uids des textes sont composés du préfixe suivant : scenario_{nom du module}_ Pour savoir si certaines pages du scénario sont inclues ou pas, il faut se référer au visibility conditions des pages du scénario dans modules.json |
|
products
|
✔ |
Contient tous les produits achetés ou vendus par la compagnie. On y décrit le type de produits ainsi que l'éventail des prix d'achat ou de vente, des quantité lors de l'achat ou la vente, des quantités en stock, etc. Les salaires des employés sont présents dans ce document. |
| services |
✔ |
Contient tous les services offerts par la compagnie. On y décrit le type de produits ainsi que l'éventail des prix d'achat ou de vente, des quantité lors de l'achat ou la vente, etc. |
|
partners
|
✔ |
Contient tous les partenaires d'affaires de la companie avec leur type, soit les employees.json et les companies.json |
|
employees
|
✔ |
Contient tous les employés que la compagnie peut engager et utiliser dans les paies. |
|
companies
|
✔ |
Contient toutes les compangies, bénéficiaires ou entités avec lesquels la compagnie fait affaire. Ça inclut les fournisseurs, les clients, la compangnie de l'étudiant et son propriétaire, etc. On y décrit entre autres, leur type de pj ou encore les produits et/ou services qu'ils achètent ou vendent. |
|
taxes
|
✔ |
Contient toutes les taxes à la consommation. On y décrit comment les calculer d'année en année. Pour savoir à quelles régions appartiennent une taxe, il faut se référer à regions_settings.json |
|
income_taxes
|
✔ |
Contient toutes les retenues salariales pour l'employée. On y décrit comment les calculer d'année en année. Pour savoir à quelles régions appartiennent une taxe, il faut se référer à regions_settings.json |
|
income_taxes_codes
|
✔ |
Contient toutes les codes possibles pour les retenues salariales calculer à partir de code. |
|
interests
|
✔ |
Contient tous les intérêts pour des emprunts ou des placements. On y décrit comment les calculer d'année en année. |
|
regions
|
✔ |
Contient toutes les régions qu'un professeur peut choisir pour contextualiser sa simulation. |
|
conditions
|
✔ |
Contient toutes les conditions de paiement qu'un client ou un fournisseur peut avoir avec la compagnie. Certaines conditions offrent des escomptes lorsque la facture est payée à court terme. |
|
dynamic_dropdown_data_structure
|
✔ |
Contient tous les identifiants de data pour dropdown avec du contenu dynamique créé par l'étudiant (e.g. client, provider) |
|
dropdown_data
|
✔ |
Contient tout le data pour dropdown avec contenu statique. (e.g. types de journaux, types de régularisation, etc.) Pour le contenu statique selon le contexte du module, il faut se référer à la méthode UtilsAcc1.GetDropdownDataFromString |
|
immobilizations
|
✔ | Contient toutes les immobilisations (matériel roulant, ameublement, équipement de bureau et terrain). On y décrit leur prix d'achat et de revente ainsi que le calcul pour leur amortissement s'il y a lieu. Provient de immobilizations_v2 sur GoogleSheet |
|
contract_regularizations
|
✔ |
Contient tous les contrats pour les régularisations de Charges payées d'avance et de Produits perçus d'avance. On y décrit quel type de produits ou services qu'ils contiennent ainsi que leur durée (un an en général). |
|
account_types
|
✔ |
Contient les grands types de comptes (Actif, Passif, Capitaux propres, Charges et Produits) et leur type de balance (débit ou crédit) |
| accounts |
|
Contient tous les comptes du grand livre avec lesquels l'étudiant va intéragir. On y décrit leur numéro, catégorie et sous-catégorie et leur type de balance (début ou crédit) |
| constants |
|
Contient toutes les constances générales (e.g. annual_num_payslips) et spécifiques aux modules (e.g. our_company_type) ou aux pages (e.g. ignored_options). |
| modules |
|
Contient tous les modules certaines informations de base qui ne sont assurément pas modifiable par un professeur. Les visibility_conditions des scenario_pages y sont aussi définies. |
| module_pages |
|
Contient toutes les pages (ou parties) que peuvent composées les modules. On y liste leur type et le data pour les générer et les corriger (comme column_inputs, table_structure, section_structure, inputs, etc.) Pour comprendre plus facilement le data, il est préférable de consulter les classes C# qui les désérialisent sur le client, enm commencant par ModulePageBase. |
| regions_settings |
|
Contient toutes les informations spécifiques aux régions. Elles peuvent globales ou spécifiques aux pages.
|
| sim_settings |
|
Contient toutes les informations globales potentiellement modifiables par un professeur, comme la region, l'année contextuelle de la simulation, la tolérance de champs de nombre et l'ordre par défaut des modules. L'année est enregistrée automatiquement lors de la création d'une simulation afin qu'elle ne change pas si la valeur dans sim_settings est incrémentée. |
| modules_settings |
|
Contient toutes les informations spécifiques aux modules potentiellement modifiables par un professeur. Les éléments principalement modifiables sont les preferences, les nombre des pj présentes dans le bills_type_data, le pages_order et les pages_ponderation. D'autres objets y sont aussi présents, comme les initial_accounts, la context_list et le current_module. Pour connaître les préférences et les pj modifiables, il faut se référer aux modules_settings_definitions. Pour connaître les pages présentes selon les préférences choisies, il faut se référer aux pages_settings_definitions. |
| pages_settings |
|
Contient toutes les informations spécifiques aux pages (ou parties) d'un module potentiellement modifiables par un professeur. Les éléments principalement modifiables sont les preferences qui sont aussi modifiables dans les modules_settings. D'autres objets y sont aussi présents, soit les scores_ponderation, la scores_details et les inputs_ponderation. |
| modules_contexts |
|
Contient toutes les informations spécifiques aux contextes des modules. Les informations présentées sont semblables à celles dans les modules_settings, plus précisément le bills_type_data et le pages_order. |
| bills_settings_definitions |
|
Contient toutes les informations modifiables pour les pj. Pour l'instant, seulement le nombre de pj est modifiable. Par contre, des visibility_conditions et/ou des dépendances peuvent changer automatique le nombre de pj. (e.g. Si, selon les préférences choisies, un type de pj n'est pas présente dans le module (visibility_conditions ➡ false), le nombre de pj pour ce type sera de 0) Pour consulter les bills_settings_definitions des modules, il faut se référer aux modules_settings_definitions. |
| preferences_settings_definitions |
|
Contient toutes les préférences modifiables des modules ou des pages d'un module. On y décrit leur type de champs avec le data associé et les visibility_conditions. Si les visibility_conditions retourne false, la valeur par défaut est forcée. Pour consulter les preferences_settings_definitions des modules, il faut se référer aux modules_settings_definitions. |
| modules_settings_definitions |
|
Contient toutes les preferences_settings_definitions et les bills_settings_definitions des modules. |
| pages_settings_definitions |
|
Contient toutes les pages ayant des visibility_conditions. On l'utilise lorsque l'on crée un module et que l'on choisie la pondération des pages du module. |
Ajouter une nouvelle page
- Ajouter la nouvelle page dans module_pages.json (S'inspirer des pages existantes pour formuler la nouvelle)
- Ajouter les settings de la nouvelle page dans les pages_settings
- Si c'est nécessaire, comme dans le cas d'une table (column_inputs_order) ou d'un custom prefab (prefab_reference), ajouter les settings de la nouvelle page dans les regions_settings
- Si c'est nécessaire, comme dans le cas d'une table ou d'un custom prefab, ajouter les settings de la nouvelle page dans les regions_settings
- Ajouter la page dans la liste de pages dans modules_settings et modules_contexts concernés
- S'il y a des conditions pour inclure ou pas la page, ajouter les conditions dans pages_settings_definitions
- Si la nouvelle page contient un dropdown, ajouter le data dans dynamic_dropdown_data_structure (dynamic), dropdown_data (static) ou UtilsAcc1.GetDropdownDataFromString (static, mais spécifique au contexte du module)
- Si la nouvelle page est un custom prefab, créer le prefab (variant si un prefab parent est disponible e.g. SubModulePageInputsControlBase)
- Ajouter le corrigé (answerkey) afin que les contextes fonctionnent
- Ajouter la correction (grading)
- S'assurer que tous les nouveaux textes ont été ajoutés
- Tester tous les modules qui possèdent la nouvelle page avec les différentes préférences et pj modifiables
Ajouter un nouveau module
- Ajouter le nouveau module dans modules.json (S'inspirer des modules existants pour formuler le nouveau)
- Ajouter les settings du nouveau module dans les modules_settings
- Ajouter les préférences et pj modifiables du nouveau module dans modules_settings_definitions
- Ajouter le nouveau module dans liste pour l'ordre par défaut des modules dans sim_settings
- Ajouter les textes du scénario du module dans l'onglet Scénario dans le document Google Sheet
- S'assurer que tous les autres nouveaux textes ont été ajoutés
- Tester le module avec les différentes préférences et pj modifiables
Arborescence des controls pour les modules
Modules
Pages
SubModulePageInputsControls
Tables
Sections
Rows
Input Cells
Procédure annuel pour updater les taxes (Deprecated)
Deprecated: Veuillez regarder la nouvelle marche à suivre dans la page "Procédure annuel pour updater les taxes (updated version 2026)"
https://docs.google.com/spreadsheets/d/1PMzc2vGeanmDXVKw8s8-hKepxstYUCIR_W1q4XSa5lE/edit#gid=0
Onglets
-
taxes
- duplicté une colonne d'une année précédente et l'intituler : $"{année}(str)"
-
Modifier les valeurs associés aux Uids sauf pour ["school", "municipal"]
- Les informations peuvent être trouvé sur un site comme celui-ci : https://empirecpa.ca/canadian-sales-tax-rates-for-2023/
-
income_taxes
- duplicté une colonne d'une année précédente et l'intituler : $"{année}(str)"
-
Modifier les valeurs associés aux Uids
- Certains identifiants ont des sources associés afin facilité la recherche d'information
-
Il faudra aussi ajouter un nouveau document googleSheet dans le folder suivant
- https://drive.google.com/drive/u/0/folders/1-7PMGfURsl47mcbA4z_Pb0y8_BUSUma4
-
il faudra alors remplir un onglet pour chaque impot possible (en utilisant le format de 26 période de paie) à l'aide de "sim_accounting_1" et de ses liens
- Note: Les retenues d'impôt est le même pour Ontario (On), Nouveau Brunswick (NB) et L'île-du-Prince-Édouard (PE)
-
Utiliser https://www.adobe.com/ca/acrobat/online/pdf-to-excel.html afin de transformer les chartes d'impot en format Excel
-
Utiliser la macro suivante afin de remplacer la colonne de min_salary
-
Utiliser la macro suivante afin de remplacer la colonne de min_salary
Conflit avec la Macro
-
-
-
-
-
Si la macro n'est pas disponible dans le menu, pour cela il faut:
- Dans le menu Extensions>Macos
- Faire un "Record macro" puis arrêter immédiatement la macro, afin de créer une macro rapidement
- Faire un "Manage macros" dans une année précédente (possèdent la macro "Replace "num1 - num2" with "num1" in colA")
- Cliquer sur les
, puis "Edit Script"
- Copier le code de macros.gs
- Faire un "Manage macros" dans le sheet en vigeur
- Cliquer sur les
, puis "Edit Script"
- Coller le script copié précédamment
- Renommer votre macro avec les mêmes valeurs que celui copié
-
S'il y a un problème de "Authorization required" ou autre durant l'exécution de la macro, voici la version manuel:
-
Faites un clique droite sur la colonne A, puis ajouter une nouvelle colonne à gauche
-
-
Copié le code ci-dessous
- =ArrayFormula(IF(REGEXMATCH(TO_TEXT(B2:B), "[–|-]"), TO_PURE_NUMBER(REGEXREPLACE(B2:B, "(\D+\.*\D+.*)", "")), 0))
- Coller le code sur la case A2 ou avant les rangées à modifier (sur la colonne A)
- À ce point normalement, les cases de la colonne A devrait-être à jour
-
Copié la colonne A à B
- ATTENTION, il se peut que certaines valeurs ne sont pas bien modifiées. Prenez seulement les valeurs adéquates
- Supprimé la colonne A
-
-
Si la macro n'est pas disponible dans le menu, pour cela il faut:
-
Remplacer toutes les instances de "," (virgule) par "." (point)
- À l'aide de (Ctrl + H)
-
-
Il faudra alors updater {AllSimsRepository}/node.js/exports/exportAllData.js afin de pouvoir exporter les nouveaux document créer avec la structure suivante:
- Dans la zone de "games.income_taxes_X.sheet" : Mettre la première partie de l'url (après "d/") du document "income_taxes_X"
- Dans les autres plus specifiques ("games.income_taxes_X.tabs"): Mettre le "gid" de l'url
-
-
-
employer_income_taxes
- duplicté une colonne d'une année précédente et l'intituler : $"{année}(str)"
-
Modifier les valeurs associés aux Uids
- Certains identifiants ont des sources associés afin facilité la recherche d'information
-
interests
- duplicté une colonne d'une année précédente et l'intituler : $"{année}(str)"
-
Modifier les valeurs associés aux Uids
- Certains identifiants ont des sources associés afin facilité la recherche d'information
Modifications liés à l'année par défaut
-
Modifier le champs year pour l'année par défaut voulu
{AllSimsRepository}\game\Assets\GameSpecific\acc1\Resources\data_acc1\act_settings.json
- duplicté une colonne d'une année précédente et l'intituler : $"{année}(str)"
-
Modifier les valeurs associés aux Uids
- Certains identifiants ont des sources associés afin facilité la recherche d'information
-
Modifier l'année par défaut pour la création des sims démo
{uniksimweb}\uniksim-back-end\src\node.js\server\backend_braincloud.js
Document PDF accessible en jeu
-
Ajouter un document liés à l'année dans ce dossier
https://cloud.digitalocean.com/spaces/uniksim-data?path=acc1/
-
Il faudra alors un document PDF intitulé "{thème}_{langue}" pour chacun des thèmes et langue suivantes, le tout dans le format "26 périodes de paie par année" (en public). N'oubliez pas de retirer l'extension .pdf
-
Thème
- cpp_ca
- employment_insurance_ca
- employment_insurance_ca_qc
- income_tax_federal_ca
- income_tax_federal_ca_nb
- income_tax_federal_ca_qc
- income_tax_provincial_ca_nb
- income_tax_provincial_ca_on
- income_tax_provincial_ca_pe
- income_tax_provincial_ca_qc
- rqap_ca_qc
- rrq_ca_qc
-
Langue
- fr
- en
-
Thème
Finitions
-
Executer la commande suivante sur node.js:
-
Une fois avec les paramêtres suivants
-
et une autre avec ceux-ci (remplacer par la bonne année)
-
-
Une fois terminé les files suivants devrait avoir des modifications
-
pour "AllSimsRepository"
-
pour "UniksimWebRepository"
-
-
Il nous reste qu'à exporter la data à la destination voulu (toujours sur node.js).
-
Utiliser cette export pour le StaticData
-
Utiliser cette export pour le StaticDataChunk
(Modifier le "args" de la requête pour chacun des requêtes)
-
Création d'une simulation (acc1)
Étape préliminaire pour la création de la simulation
Mettre à jour les taxes
-
- Avant de commencer, faire une mise à jour manuel des taxes si c'est pertinent pour l'année actuel:
Rendre la simulation général
-
-
- Si nécessaire, rendre la simulation original (copié) plus général afin de simplifier la nouvelle simulation.
- Si c'est le cas, le dossier {allsims}/UI/SimByModule est créé pour la base de acc1
- Pour se faire, les fichiers modifiés doit avoir un namespace namespace UnikSim.SimByModule au lieu de namespace UnikSim.SimByModule.acc1
- Si le fichier n'est pas dans gameSpecific, il n'est nécessaire le déplacer
- Le nom du fichier doit aussi faire référence à "ByModule" (Ex: StaticDataAcc1 => StaticDataByModule) puisqu'il sera généralisé
- Si le fichier n'a pas de acc1 dans son nom, il n'est pas nécessaire de le rename
- Les fichiers doivent aussi se faire déplacer/transfer à SimByModule dans le dossier correspondent
- Si c'est le cas, le dossier {allsims}/UI/SimByModule est créé pour la base de acc1
-
Dupliquer une simulation intérieure
- Si nécessaire, rendre la simulation original (copié) plus général afin de simplifier la nouvelle simulation.
-
-
- Avant de commencer, créer une branche au nom de la nouvelle simulation sur Git Extensions
- N'oublie pas de voir les informations supplémentaires à la fin de ce document pour certaines précisions
-
Sur unity:
- Faire une copie de GameSpecific/acc1 (Ex: acc2)
- Renommer toutes les instances de code lié à l'ancienne simulation (Incluant les noms de fichiers et les codes).
-
ATTENTION: Vérifier si les changement n'affecteront pas l'original, avant et après modifications
Un script nommé "renameFiles" est disponible pour renommer les noms de fichiers. {allsims}/node.js/utils/renameFiles.js
- Pour utiliser renameFiles, il faudra créer une copie temporaire dans le nouveau dossier
- Ajouter un launch.js temporaire avec les mêmes paramètres
- Puis modifier les paramètres suivant:
- Note 1: Le renameFiles est case sensitive pour find et replace, il se pourrait qu'il faudrait le faire plus d'une fois
- Note 2: Une fois les refactor des noms faits, il se peut que Unity ne pourra pas compiler. (Certains fichiers possèdent les mêmes noms)
- Pour régler ce problème, il faudra refactor avec Visual Studio chacun de ces fichiers ou refaire l'étape Rendre la simulation général.
- ATTENTION: Si vous voulez le faire manuellement, assurer vous de ne pas impacter le code originel (copié)
-
ATTENTION: Vérifier si les changement n'affecteront pas l'original, avant et après modifications
- Faire une copie de GameSpecific/acc1 (Ex: acc2)
-
Sur node.js:
- Faire une copie de {allsims}/node.js/backend/braincloud/server_scripts/acc1 (Ex: acc2)
- Comme à l'étape précédente, renommer toutes les instances de code lié à l'ancien script (Incluant les noms de fichiers et les codes).
-
ATTENTION: Vérifier si les changement n'affecteront pas l'original, avant et après modifications
Un script nommé "renameFiles" est disponible pour renommer les noms de fichiers. {allsims}/node.js/utils/renameFiles.js
- Pour utiliser renameFiles, il faudra modifier les paramètres suivant:
- Note 1: Le renameFiles est case sensitive pour find et replace, il se pourrait qu'il faudrait le faire plus d'une fois
-
ATTENTION: Vérifier si les changement n'affecteront pas l'original, avant et après modifications
- Faire une copie de {allsims}/node.js/backend/braincloud/server_scripts/acc1 (Ex: acc2)
Modification et ajout pour la nouvelle simulation
-
Ajouter tous les switch case:
- Faites un Ctrl + Shift + F ensuite "acc1" pour trouver toutes les instances de acc1
- Faites une copie de chaque case avec l'accronyme de votre nouvelle simulation.
- Par exemple :
- Par exemple :
- Note : Il ne sera pas nécessaire de faire de nouvelle fichier de traduction. En acc_X, le même fichier sera utilisé
-
Modifier la class static pour StaticDataByModule:
- Le fichier "StaticDataAccX" (Renommer par l'étape précédent), devra être modifier afin d'identifier le fichier
- Ajouter la class static à CreateStaticData dans Factory
- Le fichier "StaticDataAccX" (Renommer par l'étape précédent), devra être modifier afin d'identifier le fichier
-
Ajouter une nouvelle variante de MainControlStudentByModule et MainControlTeacherByModule:
- Si la copie de votre simulation ne contient pas de MainControlStudentAccX ou MainControlTeacherAccX, veuillez suivre les étapes suivantes, sinon passez cette étape
- Méthode 1: Faire une copie de MainControlStudentAcc1 et MainControlTeacherAcc1 dans la nouvelle simulation et le renommer en conséquent
- Si la copie de votre simulation ne contient pas de MainControlStudentAccX ou MainControlTeacherAccX, veuillez suivre les étapes suivantes, sinon passez cette étape
Situé à {allsims}/GameSpecific/acc1/Resources/Prefabs/UI
-
-
- Méthode 2: Créer une variante avec MainControlStudentByModule et MainControlTeacherByModule
-
Situé à {allsims}/UI/SimByModule/acc1/Resources/Prefabs/UI
-
-
-
- Clique droite, puis Create>Prefab Variant
- Déplacer le fichier au bons endroit et le renommer en conséquent
-
-
- Partie Doozy:
Situé à Resources>MainGraph
-
- Ajouter un nouveau output sur Login avec le nom approprié (Ex: acc2)
- Ajouter un nouveau node (clique droite) avec un nom approprié
- Dans ce node, ajoutez le AccXSubGraph
- Dans ce node, ajoutez le AccXSubGraph
- Connecter le output avec le nouveau node
- Si la duplication c'est bien terminé, il ne sera pas nécessaire de modifier AccXSubGraph
- Ajouter un nouveau output sur Login avec le nom approprié (Ex: acc2)
- Modifier les scènes accXTeacher et accXStudent :
Situé à GameSpecific/accX/Resources/Scenes
-
- Dans la section DecisionsPanel (Hierarchy), modifier le "Decisions Controls" pour votre simulation
- Dans la section DecisionsPanel (Hierarchy), modifier le "Decisions Controls" pour votre simulation
Modification des thèmes de la simulation
-
Remplacer les images de la nouvelle simulation avec le thème choisi :
- Écran titre : accX
- Écran de jeu : bg
- Note : Il serait peut-être intéressant de demander les images à l'équipe pour éviter des problèmes de choix esthétiques ou de design
Situé à GameSpecific/accX/Resources/images
-
- Pour modifier bg, il faudra allé sur la scène de la nouvelle simulation (accXTeacher et accXStudent, vous devriez le faire sur les deux scènes)
Situé à GameSpecific/accX/Resources/Scenes
-
-
- Dans MainView, modifier "Source Image"
- Dans MainView, modifier "Source Image"
-
-
Ajouter le titre dans LoginControl:
- Faire une copie de la simulation originel (copié) et le renommer
- Modifier le script LoginTitle dans le menu de l'inspecteur
- Ajouter dans le google sheet shared_text
- accX_theme_label (la couleur)
- accX_login_title (le titre principal, dans ce cas "Comptabilité X")
-
accX_login_subtitle (le nom de la nouvelle simulation)
- Dans AccXTitle>Title2
- Modifier le Text Uid pour accX_login_title
- Dans AccXTitle>Title3
- Modifier le Text Uid pour accX_login_subtitle
- Faire un importTextShared pour voir les changements
- Faire une copie de la simulation originel (copié) et le renommer
Situé à {allsims}/node.js/exports/importTextShared.bat
-
Modifier le thème de couleur de la simulation :
- Sur la scène de game, dans LoginBackgroundControl, ajouter le "Login Title" dans "Login Titles"
- Sur la scène de game, dans LoginBackgroundControl, ajouter le "Login Title" dans "Login Titles"
Le login title à ajouter devrait se trouver à GameSpecific/accX/Resources/AccXSkin
-
- Dans AccXSkin :
- Modifier le gameUid
- Modifier le thème de couleur
- Dans AccXSkin :
Google Sheet et StaticData
- Faire une copie du googleSheet sim_accounting_1 :
-
- Faire une copie du fichier
- Renommer le fichier (modifier le numéro)
- Modifier le fichier si nécessaire
- Note : Un fichier de base existe pour tous les simulations accounting
- Faire une copie du fichier
sim_byModule
-
Modifier les imports de fichiers :
- Il faudra alors updater {AllSimsRepository}/node.js/exports/exportAllData.js afin de pouvoir exporter les nouveaux document créer avec la structure suivante:
- Si nécessaire, modifier importAllDataGoogleSheet avec "withBaseV = true" pour import aussi la base (sim_byModule).
- Si nécessaire, modifier importAllDataGoogleSheet avec "withBaseV = true" pour import aussi la base (sim_byModule).
- Mettre la première partie de l'url (après "d/") du document sim_accounting_X
- Dans les autres plus specifiques (Ex : partners): Mettre le "gid" de l'url
- games.accX.tabs = obtenir les valeurs sur googleSheet
- games.accX.additionalData = les valeurs sont à l'extérieurs du googleSheet (se trouve directement sur Unity)
- Il faudra alors updater {AllSimsRepository}/node.js/exports/exportAllData.js afin de pouvoir exporter les nouveaux document créer avec la structure suivante:
-
Importer les fichiers sim_accounting_X pour la nouvelle simulation :
- À l'aide de la commande "Google Sheet - Import All" de node.js avec les valeurs appropriés
-
Exporter les fichiers sur Braincloud :
- À l'aide de la commande "Google Sheet - Export All Data" de node.js avec les valeurs appropriés (StaticData)
- À l'aide de la commande "Google Sheet - Export All Data" de node.js avec les valeurs appropriés (StaticDataChunk)
Information supplémentaire
- Note 1 : Les simulations en "accounting" ou "accX" sont tous mis dans une base nommé byModule (ex: braincloud>staticData, node.js>...>byModule_utils, UI>SimByModule, etc.)
- Note 2 : Certains/Plusieurs changements risquent de briser Unity. Il faudra alors faire un "Reimport All"
Modification de la valeur des stocks, PEPS
- Il y avait un problème dans la génération de différents prix pour les stocks. Ce problème se trouvait dans le acc1_utils_answer_key_module et le acc1_utils_create_bills, puisque le prix statique était utilisé et non le prix généré:
(acc1_utils_answer_key_module.js)
(acc1_utils_create_bills)
Bénéfices et pertes
- Le système de bénéfices et pertes dans les modules qui utilise l'état des résultats est basé sur un multiplicateur de prix comme qui suit:
Originalement, ce multiplicateur était basé sur une valeur de 0.6 en cas de perte, ce qui causait des problèmes. Il a été changé pour une valeur de 0.1 pour régler le problème:(dans acc1_utils_create_module_type_data.js)
Remise et remboursement de taxes
- La fonctionnalité de remise et de remboursement de taxes n'était pas fonctionnel. Pour l'implémenter on a commencé par modifier le dropdown existant (qui était basé sur pertes ou bénifices):
(le google sheet)
(les pages qui ont été modifié pour afficher le bon texte)
- Par la suite, nous sommes allé cherché du côté serveur l'option sélectionné dans le dropdown (comme pour bénéfices et pertes):
(acc1_utils.js)
(acc1_utils_create_module_type_data)
Procédure annuel pour updater les taxes (updated version 2026)
Note: La procédure assume que les liens utilisés resteront les mêmes et que la structure des fichiers PDF ne changera pas. Si les liens sont modifiés ou si la structure des PDF change, le script devra être ajusté en conséquence.
S.V.P Veuillez tout lire avant de faire la procédure
La mise à jour annuelle est maintenant automatisée avec le script :
node.js/exports/updateAnnualTaxData.js
Le script utilise les sources suivantes :
- CRA / ARC T4032 pour les tables fédérales et provinciales ON, NB, PE, QC
- Revenu Québec pour les tables provinciales QC, RRQ, RQAP
- CRA / Revenu Québec pour les taux CPP, EI, GST/HST, QST
Les sources et valeurs configurées sont dans :
node.js/exports/annualTaxSources.json
Comment ça fonctionne:
- Copier manuellement le Google Sheet income_taxes_<année précédente>.
- Renommer la copie en changeant l'année précédente par l'année en cours
- Copier l’ID du nouveau Google Sheet. ( L’ID est la partie dans l’URL entre /d/ et /edit.)
Exemple: https://docs.google.com/spreadsheets/d/190fSZq-r3K65Fb_g1D0oTQQZv5ijtIMjXvthD8MlhwM/edit - Lancer le self-test :
node exports/updateAnnualTaxData.js --year 2026 --templateYear 2025 --mode full --selfTest
Ce test vérifie :
- que les PDFs officiels sont accessibles
- que les tables sont parsées correctement
- que chaque table commence avec la ligne min_salary = 0
- que les salaires minimums sont en ordre croissant
- que les tables Québec sont mappées correctement (cas spécial)
- que les zéros sont exportés au bon format pour Google Sheets
- Lancer un dry run :
node exports/updateAnnualTaxData.js --year 2026 --templateYear 2025 --mode full --dryRun --incomeTaxesSpreadsheetId <SPREADSHEET_ID>
Le dry run ne modifie rien. Il affiche :
- les sources utilisées
- les fichiers qui seraient changés
- les onglets Google Sheets qui seraient modifiés
- les PDFs qui seraient uploadés
- les changements de taux entre l’année précédente et la nouvelle année
- Lancer l’export réel :
node exports/updateAnnualTaxData.js --year 2026 --templateYear 2025 --mode full --apply --incomeTaxesSpreadsheetId <SPREADSHEET_ID>
Utilisation Dans VS Code
Les configurations mentionnées ci-dessus existent dans .vscode/launch.json :
Annual Tax Export - Self Test
Annual Tax Export - Dry Run
Annual Tax Export - Run
Lors du lancement, VS Code demande :
-
taxYear: l’année à générer, ex. 2026 -
templateTaxYear: l’année précédente à utiliser comme modèle, ex. 2025 -
incomeTaxesSpreadsheetId: l’ID du Google Sheet copié manuellement -
annualTaxTargets: les destinations à mettre à jour -
setDefaultYear: si on veut changer l'année en cours ou non
Choix Des Destinations
Le script permet de relancer seulement une partie du processus avec --targets.
Options disponibles :
all
incomeTaxes
byModule
do
incomeTaxes,byModule
incomeTaxes,do
byModule,do
Signification :
incomeTaxes
Met à jour le Google Sheet copié income_taxes_<année> :
- écrit les onglets de tables d’impôt
- renomme les tabs de l’année précédente vers la nouvelle année
- met à jour exports/exportAllData.js avec le nouvel ID de sheet et les gids des tabs
byModule
Met à jour les colonnes de la nouvelle année dans le Google Sheet principal :
- taxes
- income_taxes
- employer_income_taxes
- interests
do
Upload les PDFs officiels dans DigitalOcean Spaces :
acc1/<année>/<theme>_<lang>
Fichiers Modifiés Par Le Script
Selon les targets choisis, le script peut modifier :
game/Assets/GameSpecific/byModule/Resources/data_byModule/income_tax_*_<année>.json
game/Assets/GameSpecific/byModule/Resources/data_byModule/taxes.json
game/Assets/GameSpecific/byModule/Resources/data_byModule/income_taxes.json
game/Assets/GameSpecific/byModule/Resources/data_byModule/employer_income_taxes.json
game/Assets/GameSpecific/byModule/Resources/data_byModule/interests.json
node.js/exports/exportAllData.js
Si --setDefaultYear est utilisé, il modifie aussi :
game/Assets/GameSpecific/byModule/Resources/data_byModule/act_settings.json
uniksimweb/uniksim-back-end/src/node.js/server/backend_braincloud.js
--setDefaultYear change l'année en cours utilisé dans la simulation.
Veuillez vous référer aux étapes ci-dessous si vous décider de ne pas changer l'année tout de suite.
- Modifier le champs year pour l'année par défaut voulu (
act_settings.json)
- Modifier l'année par défaut pour la création de sims démo (
backend_braincloud.js)
- Exporter les scripts acc1/acc2 et income_taxes_*
Finalement, il faut incrémenter la version dans version.txt et build pour que la nouvelle année en cours prenne effet.
Assets\Resources\data\version.txt
Diagramme qui montre comment le script fonctionne: