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.
- package/index.html +9 -6
- 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.
|
|
227
|
-
const SCHEMA=
|
|
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,'
|
|
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
|
|
375
|
-
|
|
376
|
-
|
|
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){} });
|