buhanka-finance-app 1.2.0 → 1.3.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 +9 -6
  2. package/package.json +1 -1
package/index.html CHANGED
@@ -223,8 +223,8 @@ tr.subtotal>td:first-child{color:var(--accent);box-shadow:inset 3px 0 0 var(--ac
223
223
 
224
224
  <script>
225
225
  /* ============================================================ БУХАНКА · Финансы v2 ============================================================ */
226
- const APP_VERSION='3.3';
227
- const SCHEMA=1; /* версия структуры данных; растёт при доработках */
226
+ const APP_VERSION='3.4';
227
+ const SCHEMA=2; /* версия структуры данных; растёт при доработках */
228
228
  const STORE_KEY='buhanka_finance_v9';/* НЕ МЕНЯТЬ НИКОГДА — иначе данные «слетят» при обновлении файла */
229
229
  const LEGACY_KEYS=['buhanka_finance_v8','buhanka_finance_v7','buhanka_finance_v6','buhanka_finance_v5'];
230
230
  const AUTODL_KEY='buhanka_last_download';
@@ -249,7 +249,7 @@ function buildStructure(){
249
249
  return [
250
250
  S("Выручка","value",1,'manual','Выручка'),S("Себестоимость","value",-1,'manual','Себестоимость'),
251
251
  S("Маржинальная прибыль","subtotal"),S("Прямые расходы","header"),
252
- S("Списания","value",-1,'manual','Списания'),S("Эквайринг","value",-1,'manual','Эквайринг'),
252
+ S("Списания","value",-1,'manual','Списания'),S("Эквайринг","value",-1,'ops','Эквайринг'),
253
253
  S("Аренда","value",-1,'fixed','Аренда'),S("Субаренда","value",1,'manual','Субаренда'),
254
254
  S("Расходные материалы","value",-1,'manual','Расходные материалы'),S("ФОТ","value",-1,'manual','ФОТ'),
255
255
  S("Уборщица","value",-1,'manual','Уборщица'),S("Вывоз мусора","value",-1,'fixed','Вывоз мусора'),
@@ -371,10 +371,13 @@ function load(){
371
371
  }
372
372
  function schemaGuard(){
373
373
  const cur=Number(ST._schema||0);
374
- if(cur<SCHEMA){
375
- if((ST.operations||[]).length || bkCells(ST)) bkCreate('Перед обновлением файла до v'+APP_VERSION,true,true);
376
- ST._schema=SCHEMA; save();
374
+ if(cur>=SCHEMA) return;
375
+ if((ST.operations||[]).length || bkCells(ST)) bkCreate('Перед обновлением файла до v'+APP_VERSION,true,true);
376
+ if(cur<2){ /* v3.4: «Эквайринг» считается из операций, выручка остаётся ручной (из 1С) */
377
+ [ (ST.structures||{}).general, (ST.structures||{}).point ].forEach(st=>(st||[]).forEach(r=>{
378
+ if(r&&r.role==='value'&&r.cat==='Эквайринг'&&(r.source==='manual'||!r.source)) r.source='ops'; }));
377
379
  }
380
+ ST._schema=SCHEMA; save();
378
381
  }
379
382
  function legacyFound(){ const out=[];
380
383
  LEGACY_KEYS.forEach(k=>{ try{ const v=localStorage.getItem(k); if(v) out.push({key:k,size:v.length}); }catch(e){} });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "buhanka-finance-app",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Buhanka bakery finance dashboard — single-file web app",
5
5
  "license": "MIT",
6
6
  "files": [