buhanka-finance-app 1.77.0 → 1.78.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.html +5 -3
  2. package/package.json +1 -1
package/index.html CHANGED
@@ -309,7 +309,7 @@ tr.subtotal>td:first-child{color:var(--accent);box-shadow:inset 3px 0 0 var(--ac
309
309
 
310
310
  <script>
311
311
  /* ============================================================ БУХАНКА · Финансы v2 ============================================================ */
312
- const APP_VERSION='11.0';
312
+ const APP_VERSION='11.1';
313
313
  const SCHEMA=9; /* версия структуры данных; растёт при доработках */
314
314
  const STORE_KEY='buhanka_finance_v9';/* НЕ МЕНЯТЬ НИКОГДА — иначе данные «слетят» при обновлении файла */
315
315
  const LEGACY_KEYS=['buhanka_finance_v8','buhanka_finance_v7','buhanka_finance_v6','buhanka_finance_v5'];
@@ -1355,8 +1355,10 @@ function runChecks(P){
1355
1355
  // 3. Общий = сумма точек
1356
1356
  const revG=revFactOf('Общий',P), revPts=ST.points.reduce((s,p)=>s+revFactOf(p,P),0);
1357
1357
  const netG=netProfit('Общий',P), netPts=ST.points.reduce((s,p)=>s+netProfit(p,P),0);
1358
- if(Math.abs(revG-revPts)>1||Math.abs(netG-netPts)>1) add('warn','«Общий» PnL ≠ сумма точек',`Выручка: Общий ${fmt(revG)} vs точки ${fmt(revPts)} (Δ ${fmt(revG-revPts)}). Чистая: Общий ${fmt(netG)} vs точки ${fmt(netPts)} (Δ ${fmt(netG-netPts)}). Проверьте данные.`,'points');
1359
- else add('ok','«Общий» PnL сходится с суммой точек','Выручка и чистая прибыль «Общего» равны сумме по точкам.','points');
1358
+ /* чистая прибыль «Общего» и сумма точек не обязаны совпадать: в общем есть косвенные расходы
1359
+ и строки со своим источником. Сверяем только выручку, разницу по прибыли показываем справкой. */
1360
+ if(Math.abs(revG-revPts)>1) add('warn','Выручка «Общего» ≠ сумма точек',`Общий ${fmt(revG)} vs точки ${fmt(revPts)} (Δ ${fmt(revG-revPts)}). Проверьте данные.`,'points');
1361
+ else add('ok','Выручка «Общего» сходится с суммой точек',`Чистая: общий ${fmt(netG)}, сумма точек ${fmt(netPts)} — разница ${fmt(netG-netPts)} это косвенные расходы, так и должно быть.`,'points');
1360
1362
  // 4. ФОТ начислено vs выплачено
1361
1363
  const fotAcc=mm.reduce((s,mo)=>s+fotAll(mo),0);
1362
1364
  const fotPaid=mm.reduce((s,mo)=>ST.employees.reduce((a,e)=>a+empPaid(mo,e.id),s),0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "buhanka-finance-app",
3
- "version": "1.77.0",
3
+ "version": "1.78.0",
4
4
  "description": "Buhanka bakery finance dashboard — single-file web app",
5
5
  "license": "MIT",
6
6
  "files": [