i18n(finance): full page — tabs/periods/pnl/balance + Expense.CATEGORIES
- All 4 tabs (Overview/Cashflow/P&L/Balanță) built with __() around the text portion, emoji stays in code - 4 period presets wrapped with __() - P&L table Marjă/Marjă piese footer wrapped - Expense::CATEGORIES values look up through __() in the expensesByCat loop so categories show translated (Salariu → Зарплата etc.) - +25 translations covering all UI copy on /app/finance 306 tests pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -45,10 +45,10 @@ class Finance extends Page
|
|||||||
public function tabs(): array
|
public function tabs(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'overview' => '📊 Overview',
|
'overview' => '📊 ' . __('Overview'),
|
||||||
'cashflow' => '💸 Cashflow',
|
'cashflow' => '💸 ' . __('Cashflow'),
|
||||||
'pnl' => '📈 P&L',
|
'pnl' => '📈 ' . __('P&L'),
|
||||||
'balance' => __('⚖️ Balanță'),
|
'balance' => '⚖️ ' . __('Balanță'),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,8 +57,8 @@ class Finance extends Page
|
|||||||
return [
|
return [
|
||||||
'this_month' => __('Luna curentă'),
|
'this_month' => __('Luna curentă'),
|
||||||
'last_month' => __('Luna trecută'),
|
'last_month' => __('Luna trecută'),
|
||||||
'this_year' => 'Anul curent',
|
'this_year' => __('Anul curent'),
|
||||||
'last_30' => 'Ultimele 30 zile',
|
'last_30' => __('Ultimele 30 zile'),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+26
-16
@@ -56,6 +56,7 @@
|
|||||||
"Acest email a fost generat automat. Vă rugăm nu răspundeți.": "This email was auto-generated. Please do not reply.",
|
"Acest email a fost generat automat. Vă rugăm nu răspundeți.": "This email was auto-generated. Please do not reply.",
|
||||||
"Achitat": "Paid",
|
"Achitat": "Paid",
|
||||||
"Achitat azi": "Paid today",
|
"Achitat azi": "Paid today",
|
||||||
|
"Achiziție piese": "Parts purchase",
|
||||||
"Achiziții": "Purchases",
|
"Achiziții": "Purchases",
|
||||||
"Acord": "Agreed",
|
"Acord": "Agreed",
|
||||||
"Acord client": "Client agreement",
|
"Acord client": "Client agreement",
|
||||||
@@ -63,7 +64,7 @@
|
|||||||
"Actions": "Actions",
|
"Actions": "Actions",
|
||||||
"Activ": "Active",
|
"Activ": "Active",
|
||||||
"Activare": "Activation",
|
"Activare": "Activation",
|
||||||
"Active": "Active",
|
"Active": "Assets",
|
||||||
"Active acum": "Active now",
|
"Active acum": "Active now",
|
||||||
"Activează": "Activate",
|
"Activează": "Activate",
|
||||||
"Activează / dezactivează notificările auto către clienți. Telegram are prioritate dacă clientul are cont legat.": "Activează / dezactivează notificările auto către clienți. Telegram are prioritate dacă clientul are cont legat.",
|
"Activează / dezactivează notificările auto către clienți. Telegram are prioritate dacă clientul are cont legat.": "Activează / dezactivează notificările auto către clienți. Telegram are prioritate dacă clientul are cont legat.",
|
||||||
@@ -307,7 +308,8 @@
|
|||||||
"Card MAIB / MICB / Victoriabank, MD Cash, e-money": "Card MAIB / MICB / Victoriabank, MD Cash, e-money",
|
"Card MAIB / MICB / Victoriabank, MD Cash, e-money": "Card MAIB / MICB / Victoriabank, MD Cash, e-money",
|
||||||
"Card bancar": "Bank card",
|
"Card bancar": "Bank card",
|
||||||
"Caroserie": "Body type",
|
"Caroserie": "Body type",
|
||||||
"Cashflow zilnic — verde = încasări, roșu = cheltuieli": "Daily cashflow — green = income, red = expense",
|
"Cashflow": "Cashflow",
|
||||||
|
"Cashflow zilnic — verde = încasări, roșu = cheltuieli": "Daily cashflow — green = income, red = expenses",
|
||||||
"Catalog manoperă": "Labor catalog",
|
"Catalog manoperă": "Labor catalog",
|
||||||
"Categorie": "Category",
|
"Categorie": "Category",
|
||||||
"Categorie implicită": "Default category",
|
"Categorie implicită": "Default category",
|
||||||
@@ -534,7 +536,7 @@
|
|||||||
"Datorie": "Debt",
|
"Datorie": "Debt",
|
||||||
"Datorii": "Debts",
|
"Datorii": "Debts",
|
||||||
"Datorii clienți": "Client debt",
|
"Datorii clienți": "Client debt",
|
||||||
"Datorii clienți (de încasat)": "Client debts (to collect)",
|
"Datorii clienți (de încasat)": "Client debt (to collect)",
|
||||||
"Daune": "Daune",
|
"Daune": "Daune",
|
||||||
"De către": "By",
|
"De către": "By",
|
||||||
"De făcut": "To do",
|
"De făcut": "To do",
|
||||||
@@ -985,7 +987,7 @@
|
|||||||
"Maistru / Recepție:": "Master / Reception:",
|
"Maistru / Recepție:": "Master / Reception:",
|
||||||
"Make": "Make",
|
"Make": "Make",
|
||||||
"Manager": "Manager",
|
"Manager": "Manager",
|
||||||
"Manopere": "Labor lines",
|
"Manopere": "Labor",
|
||||||
"Manoperă": "Labor",
|
"Manoperă": "Labor",
|
||||||
"Manuală": "Manual",
|
"Manuală": "Manual",
|
||||||
"Marca": "Make",
|
"Marca": "Make",
|
||||||
@@ -1008,7 +1010,9 @@
|
|||||||
"Marjă internă (%)": "Internal margin (%)",
|
"Marjă internă (%)": "Internal margin (%)",
|
||||||
"Marjă internă (%) — override": "Internal margin (%) — override",
|
"Marjă internă (%) — override": "Internal margin (%) — override",
|
||||||
"Marjă internă (nu TVA)": "Internal margin (not VAT)",
|
"Marjă internă (nu TVA)": "Internal margin (not VAT)",
|
||||||
|
"Marjă piese:": "Parts margin:",
|
||||||
"Marjă profit:": "Profit margin:",
|
"Marjă profit:": "Profit margin:",
|
||||||
|
"Marjă:": "Margin:",
|
||||||
"Marketing": "Marketing",
|
"Marketing": "Marketing",
|
||||||
"Marketing (UTM)": "Marketing (UTM)",
|
"Marketing (UTM)": "Marketing (UTM)",
|
||||||
"Markup": "Markup",
|
"Markup": "Markup",
|
||||||
@@ -1241,8 +1245,10 @@
|
|||||||
"Ore programate": "Scheduled hours",
|
"Ore programate": "Scheduled hours",
|
||||||
"Ore total": "Ore total",
|
"Ore total": "Ore total",
|
||||||
"Ore/zi": "Hours/day",
|
"Ore/zi": "Hours/day",
|
||||||
|
"Overview": "Overview",
|
||||||
"Owner": "Owner",
|
"Owner": "Owner",
|
||||||
"Owner = drepturi totale. Admin = aproape la fel. Sales = doar tenanți + planuri. Finance = facturi. Support = read-only.": "Owner = drepturi totale. Admin = aproape la fel. Sales = doar tenanți + planuri. Finance = facturi. Support = read-only.",
|
"Owner = drepturi totale. Admin = aproape la fel. Sales = doar tenanți + planuri. Finance = facturi. Support = read-only.": "Owner = drepturi totale. Admin = aproape la fel. Sales = doar tenanți + planuri. Finance = facturi. Support = read-only.",
|
||||||
|
"P&L": "P&L",
|
||||||
"PDF": "PDF",
|
"PDF": "PDF",
|
||||||
"PDR": "PDR",
|
"PDR": "PDR",
|
||||||
"PNG/ICO, max 512 KB.": "PNG/ICO, max 512 KB.",
|
"PNG/ICO, max 512 KB.": "PNG/ICO, max 512 KB.",
|
||||||
@@ -1296,7 +1302,7 @@
|
|||||||
"Perioadă (YYYY-MM)": "Period (YYYY-MM)",
|
"Perioadă (YYYY-MM)": "Period (YYYY-MM)",
|
||||||
"Perioadă raport": "Report period",
|
"Perioadă raport": "Report period",
|
||||||
"Perioadă trial (zile)": "Trial period (days)",
|
"Perioadă trial (zile)": "Trial period (days)",
|
||||||
"Perioadă:": "Perioadă:",
|
"Perioadă:": "Period:",
|
||||||
"Permisiuni": "Permisiuni",
|
"Permisiuni": "Permisiuni",
|
||||||
"Persoană contact": "Contact person",
|
"Persoană contact": "Contact person",
|
||||||
"Persoană fizică": "Individual",
|
"Persoană fizică": "Individual",
|
||||||
@@ -1310,7 +1316,7 @@
|
|||||||
"Pierdut": "Lost",
|
"Pierdut": "Lost",
|
||||||
"Pierdute": "Pierdute",
|
"Pierdute": "Pierdute",
|
||||||
"Piese": "Parts",
|
"Piese": "Parts",
|
||||||
"Piese (vânzare)": "Piese (vânzare)",
|
"Piese (vânzare)": "Parts (sales)",
|
||||||
"Piese impl.": "Default parts",
|
"Piese impl.": "Default parts",
|
||||||
"Piese implicite": "Default parts",
|
"Piese implicite": "Default parts",
|
||||||
"Piese în stoc": "Piese în stoc",
|
"Piese în stoc": "Piese în stoc",
|
||||||
@@ -1569,6 +1575,7 @@
|
|||||||
"SUV": "SUV",
|
"SUV": "SUV",
|
||||||
"SUV / Crossover": "SUV / Crossover",
|
"SUV / Crossover": "SUV / Crossover",
|
||||||
"Salarii": "Salaries",
|
"Salarii": "Salaries",
|
||||||
|
"Salariu": "Salary",
|
||||||
"Salariu & comisioane": "Salariu & comisioane",
|
"Salariu & comisioane": "Salariu & comisioane",
|
||||||
"Salariu & marjă": "Salary & margin",
|
"Salariu & marjă": "Salary & margin",
|
||||||
"Salariu bază": "Base salary",
|
"Salariu bază": "Base salary",
|
||||||
@@ -1597,6 +1604,7 @@
|
|||||||
"Schimb ulei + filtru": "Oil + filter change",
|
"Schimb ulei + filtru": "Oil + filter change",
|
||||||
"Scoate din magazin": "Scoate din magazin",
|
"Scoate din magazin": "Scoate din magazin",
|
||||||
"Scrie mesajul tău...": "Scrie mesajul tău...",
|
"Scrie mesajul tău...": "Scrie mesajul tău...",
|
||||||
|
"Scule / consumabile": "Tools / consumables",
|
||||||
"Scăzut": "Low",
|
"Scăzut": "Low",
|
||||||
"Se completează automat când clientul scrie la bot": "Auto-filled when the client writes to the bot",
|
"Se completează automat când clientul scrie la bot": "Auto-filled when the client writes to the bot",
|
||||||
"Se procesează...": "Processing...",
|
"Se procesează...": "Processing...",
|
||||||
@@ -1695,7 +1703,7 @@
|
|||||||
"Stoc adăugat": "Stoc adăugat",
|
"Stoc adăugat": "Stoc adăugat",
|
||||||
"Stoc minim": "Stoc minim",
|
"Stoc minim": "Stoc minim",
|
||||||
"Stoc minim atins": "Minimum stock reached",
|
"Stoc minim atins": "Minimum stock reached",
|
||||||
"Stoc piese (la preț achiziție)": "Stoc piese (la preț achiziție)",
|
"Stoc piese (la preț achiziție)": "Parts stock (at purchase price)",
|
||||||
"Stock": "Stock",
|
"Stock": "Stock",
|
||||||
"Storage": "Storage",
|
"Storage": "Storage",
|
||||||
"Storage (MB)": "Storage (MB)",
|
"Storage (MB)": "Storage (MB)",
|
||||||
@@ -1752,6 +1760,7 @@
|
|||||||
"Tarifare": "Rating",
|
"Tarifare": "Rating",
|
||||||
"Task": "Task",
|
"Task": "Task",
|
||||||
"Tasks": "Tasks",
|
"Tasks": "Tasks",
|
||||||
|
"Taxe": "Taxes",
|
||||||
"Taxă depozitare": "Storage fee",
|
"Taxă depozitare": "Storage fee",
|
||||||
"Taxă livrare": "Delivery fee",
|
"Taxă livrare": "Delivery fee",
|
||||||
"Tehnice": "Technical",
|
"Tehnice": "Technical",
|
||||||
@@ -1817,7 +1826,7 @@
|
|||||||
"Toate produsele": "All products",
|
"Toate produsele": "All products",
|
||||||
"Toate rolurile": "All roles",
|
"Toate rolurile": "All roles",
|
||||||
"Toate statusurile": "Toate statusurile",
|
"Toate statusurile": "Toate statusurile",
|
||||||
"Toate timpurile": "Toate timpurile",
|
"Toate timpurile": "All time",
|
||||||
"Token generat!": "Token generat!",
|
"Token generat!": "Token generat!",
|
||||||
"Token public": "Token public",
|
"Token public": "Token public",
|
||||||
"Token revocat": "Token revocat",
|
"Token revocat": "Token revocat",
|
||||||
@@ -1826,20 +1835,20 @@
|
|||||||
"Top piese vândute": "Top piese vândute",
|
"Top piese vândute": "Top piese vândute",
|
||||||
"Tot apelul trebuie făcut pe subdomain-ul tău:": "Tot apelul trebuie făcut pe subdomain-ul tău:",
|
"Tot apelul trebuie făcut pe subdomain-ul tău:": "Tot apelul trebuie făcut pe subdomain-ul tău:",
|
||||||
"Total": "Total",
|
"Total": "Total",
|
||||||
"Total active": "Total active",
|
"Total active": "Total assets",
|
||||||
"Total cheltuit": "Total cheltuit",
|
"Total cheltuit": "Total spent",
|
||||||
"Total costuri": "Total costuri",
|
"Total costuri": "Total costs",
|
||||||
"Total deals active": "Total active deals",
|
"Total deals active": "Total active deals",
|
||||||
"Total general": "Grand total",
|
"Total general": "Grand total",
|
||||||
"Total ieșiri": "Total ieșiri",
|
"Total ieșiri": "Total outflow",
|
||||||
"Total intrări": "Total intrări",
|
"Total intrări": "Total inflow",
|
||||||
"Total net": "Total net",
|
"Total net": "Total net",
|
||||||
"Total paid": "Total paid",
|
"Total paid": "Total paid",
|
||||||
"Total plătit": "Total paid",
|
"Total plătit": "Total paid",
|
||||||
"Total rezultate": "Total results",
|
"Total rezultate": "Total results",
|
||||||
"Total venituri": "Total venituri",
|
"Total venituri": "Total revenue",
|
||||||
"Total în baza de date": "Total in database",
|
"Total în baza de date": "Total in database",
|
||||||
"Total încasat": "Total încasat",
|
"Total încasat": "Total received",
|
||||||
"Total înregistrate": "Total registered",
|
"Total înregistrate": "Total registered",
|
||||||
"Toți": "All",
|
"Toți": "All",
|
||||||
"Toți VIP-ii sunt în contact recent.": "Toți VIP-ii sunt în contact recent.",
|
"Toți VIP-ii sunt în contact recent.": "Toți VIP-ii sunt în contact recent.",
|
||||||
@@ -1885,6 +1894,7 @@
|
|||||||
"Ultima logare": "Ultima logare",
|
"Ultima logare": "Ultima logare",
|
||||||
"Ultima modificare": "Last modified",
|
"Ultima modificare": "Last modified",
|
||||||
"Ultima sincronizare": "Last synced",
|
"Ultima sincronizare": "Last synced",
|
||||||
|
"Ultimele 30 zile": "Last 30 days",
|
||||||
"Ultimul cod citit:": "Last code read:",
|
"Ultimul cod citit:": "Last code read:",
|
||||||
"Un depozit implicit a fost creat la migrare. Adaugă altele dacă ai locații fizice separate (sucursală, hală, mobil).": "A default warehouse was created at migration. Add others if you have separate physical locations (branch, hall, mobile).",
|
"Un depozit implicit a fost creat la migrare. Adaugă altele dacă ai locații fizice separate (sucursală, hală, mobil).": "A default warehouse was created at migration. Add others if you have separate physical locations (branch, hall, mobile).",
|
||||||
"Updated at": "Updated at",
|
"Updated at": "Updated at",
|
||||||
@@ -1937,7 +1947,7 @@
|
|||||||
"Venit luna curentă": "Current month revenue",
|
"Venit luna curentă": "Current month revenue",
|
||||||
"Venit luna trecută": "Venit luna trecută",
|
"Venit luna trecută": "Venit luna trecută",
|
||||||
"Venit manopere": "Labor revenue",
|
"Venit manopere": "Labor revenue",
|
||||||
"Venituri": "Revenues",
|
"Venituri": "Revenue",
|
||||||
"Verificare": "Verification",
|
"Verificare": "Verification",
|
||||||
"Verificat": "Verified",
|
"Verificat": "Verified",
|
||||||
"Verifică emailul": "Check your email",
|
"Verifică emailul": "Check your email",
|
||||||
|
|||||||
+25
-15
@@ -56,6 +56,7 @@
|
|||||||
"Acest email a fost generat automat. Vă rugăm nu răspundeți.": "Это письмо сгенерировано автоматически. Пожалуйста, не отвечайте.",
|
"Acest email a fost generat automat. Vă rugăm nu răspundeți.": "Это письмо сгенерировано автоматически. Пожалуйста, не отвечайте.",
|
||||||
"Achitat": "Оплачено",
|
"Achitat": "Оплачено",
|
||||||
"Achitat azi": "Оплачено сегодня",
|
"Achitat azi": "Оплачено сегодня",
|
||||||
|
"Achiziție piese": "Закупка запчастей",
|
||||||
"Achiziții": "Закупки",
|
"Achiziții": "Закупки",
|
||||||
"Acord": "Согласовано",
|
"Acord": "Согласовано",
|
||||||
"Acord client": "Согласование клиента",
|
"Acord client": "Согласование клиента",
|
||||||
@@ -63,7 +64,7 @@
|
|||||||
"Actions": "Действия",
|
"Actions": "Действия",
|
||||||
"Activ": "Активный",
|
"Activ": "Активный",
|
||||||
"Activare": "Активация",
|
"Activare": "Активация",
|
||||||
"Active": "Активный",
|
"Active": "Активы",
|
||||||
"Active acum": "В работе сейчас",
|
"Active acum": "В работе сейчас",
|
||||||
"Activează": "Активировать",
|
"Activează": "Активировать",
|
||||||
"Activează / dezactivează notificările auto către clienți. Telegram are prioritate dacă clientul are cont legat.": "Activează / dezactivează notificările auto către clienți. Telegram are prioritate dacă clientul are cont legat.",
|
"Activează / dezactivează notificările auto către clienți. Telegram are prioritate dacă clientul are cont legat.": "Activează / dezactivează notificările auto către clienți. Telegram are prioritate dacă clientul are cont legat.",
|
||||||
@@ -307,7 +308,8 @@
|
|||||||
"Card MAIB / MICB / Victoriabank, MD Cash, e-money": "Card MAIB / MICB / Victoriabank, MD Cash, e-money",
|
"Card MAIB / MICB / Victoriabank, MD Cash, e-money": "Card MAIB / MICB / Victoriabank, MD Cash, e-money",
|
||||||
"Card bancar": "Банковская карта",
|
"Card bancar": "Банковская карта",
|
||||||
"Caroserie": "Кузов",
|
"Caroserie": "Кузов",
|
||||||
"Cashflow zilnic — verde = încasări, roșu = cheltuieli": "Дневной cashflow — зелёный = доход, красный = расход",
|
"Cashflow": "Cashflow",
|
||||||
|
"Cashflow zilnic — verde = încasări, roșu = cheltuieli": "Дневной cashflow — зелёный = поступления, красный = расходы",
|
||||||
"Catalog manoperă": "Каталог работ",
|
"Catalog manoperă": "Каталог работ",
|
||||||
"Categorie": "Категория",
|
"Categorie": "Категория",
|
||||||
"Categorie implicită": "Категория по умолчанию",
|
"Categorie implicită": "Категория по умолчанию",
|
||||||
@@ -461,7 +463,7 @@
|
|||||||
"Cost (terț)": "Стоимость (субподр.)",
|
"Cost (terț)": "Стоимость (субподр.)",
|
||||||
"Cost piese (achiziție)": "Стоимость запчастей (закупка)",
|
"Cost piese (achiziție)": "Стоимость запчастей (закупка)",
|
||||||
"Cost/lead": "Cost/lead",
|
"Cost/lead": "Cost/lead",
|
||||||
"Costuri": "Стоимости",
|
"Costuri": "Затраты",
|
||||||
"Country": "Страна",
|
"Country": "Страна",
|
||||||
"Coupé": "Купе",
|
"Coupé": "Купе",
|
||||||
"Creanțe": "Дебиторка",
|
"Creanțe": "Дебиторка",
|
||||||
@@ -1008,7 +1010,9 @@
|
|||||||
"Marjă internă (%)": "Внутренняя маржа (%)",
|
"Marjă internă (%)": "Внутренняя маржа (%)",
|
||||||
"Marjă internă (%) — override": "Внутренняя маржа (%) — override",
|
"Marjă internă (%) — override": "Внутренняя маржа (%) — override",
|
||||||
"Marjă internă (nu TVA)": "Внутренняя маржа (не НДС)",
|
"Marjă internă (nu TVA)": "Внутренняя маржа (не НДС)",
|
||||||
|
"Marjă piese:": "Маржа запчастей:",
|
||||||
"Marjă profit:": "Маржа прибыли:",
|
"Marjă profit:": "Маржа прибыли:",
|
||||||
|
"Marjă:": "Маржа:",
|
||||||
"Marketing": "Маркетинг",
|
"Marketing": "Маркетинг",
|
||||||
"Marketing (UTM)": "Marketing (UTM)",
|
"Marketing (UTM)": "Marketing (UTM)",
|
||||||
"Markup": "Наценка",
|
"Markup": "Наценка",
|
||||||
@@ -1096,7 +1100,7 @@
|
|||||||
"Nesemnat": "Не подписано",
|
"Nesemnat": "Не подписано",
|
||||||
"Nesincronizat": "Не синхронизировано",
|
"Nesincronizat": "Не синхронизировано",
|
||||||
"Net 30 / Avans": "Net 30 / Аванс",
|
"Net 30 / Avans": "Net 30 / Аванс",
|
||||||
"Net:": "Net:",
|
"Net:": "Итого:",
|
||||||
"Neverificat": "Не проверено",
|
"Neverificat": "Не проверено",
|
||||||
"New client": "Новый клиент",
|
"New client": "Новый клиент",
|
||||||
"New mașină": "Новое авто",
|
"New mașină": "Новое авто",
|
||||||
@@ -1241,8 +1245,10 @@
|
|||||||
"Ore programate": "Запланированные часы",
|
"Ore programate": "Запланированные часы",
|
||||||
"Ore total": "Ore total",
|
"Ore total": "Ore total",
|
||||||
"Ore/zi": "Часов/день",
|
"Ore/zi": "Часов/день",
|
||||||
|
"Overview": "Обзор",
|
||||||
"Owner": "Владелец",
|
"Owner": "Владелец",
|
||||||
"Owner = drepturi totale. Admin = aproape la fel. Sales = doar tenanți + planuri. Finance = facturi. Support = read-only.": "Owner = drepturi totale. Admin = aproape la fel. Sales = doar tenanți + planuri. Finance = facturi. Support = read-only.",
|
"Owner = drepturi totale. Admin = aproape la fel. Sales = doar tenanți + planuri. Finance = facturi. Support = read-only.": "Owner = drepturi totale. Admin = aproape la fel. Sales = doar tenanți + planuri. Finance = facturi. Support = read-only.",
|
||||||
|
"P&L": "P&L",
|
||||||
"PDF": "PDF",
|
"PDF": "PDF",
|
||||||
"PDR": "PDR",
|
"PDR": "PDR",
|
||||||
"PNG/ICO, max 512 KB.": "PNG/ICO, max 512 KB.",
|
"PNG/ICO, max 512 KB.": "PNG/ICO, max 512 KB.",
|
||||||
@@ -1296,7 +1302,7 @@
|
|||||||
"Perioadă (YYYY-MM)": "Период (ГГГГ-ММ)",
|
"Perioadă (YYYY-MM)": "Период (ГГГГ-ММ)",
|
||||||
"Perioadă raport": "Период отчёта",
|
"Perioadă raport": "Период отчёта",
|
||||||
"Perioadă trial (zile)": "Пробный период (дни)",
|
"Perioadă trial (zile)": "Пробный период (дни)",
|
||||||
"Perioadă:": "Perioadă:",
|
"Perioadă:": "Период:",
|
||||||
"Permisiuni": "Permisiuni",
|
"Permisiuni": "Permisiuni",
|
||||||
"Persoană contact": "Контактное лицо",
|
"Persoană contact": "Контактное лицо",
|
||||||
"Persoană fizică": "Физ. лицо",
|
"Persoană fizică": "Физ. лицо",
|
||||||
@@ -1310,7 +1316,7 @@
|
|||||||
"Pierdut": "Потерян",
|
"Pierdut": "Потерян",
|
||||||
"Pierdute": "Pierdute",
|
"Pierdute": "Pierdute",
|
||||||
"Piese": "Запчасти",
|
"Piese": "Запчасти",
|
||||||
"Piese (vânzare)": "Piese (vânzare)",
|
"Piese (vânzare)": "Запчасти (продажа)",
|
||||||
"Piese impl.": "Запчасти",
|
"Piese impl.": "Запчасти",
|
||||||
"Piese implicite": "Запчасти по умолчанию",
|
"Piese implicite": "Запчасти по умолчанию",
|
||||||
"Piese în stoc": "Piese în stoc",
|
"Piese în stoc": "Piese în stoc",
|
||||||
@@ -1569,6 +1575,7 @@
|
|||||||
"SUV": "SUV",
|
"SUV": "SUV",
|
||||||
"SUV / Crossover": "SUV / Кроссовер",
|
"SUV / Crossover": "SUV / Кроссовер",
|
||||||
"Salarii": "Зарплаты",
|
"Salarii": "Зарплаты",
|
||||||
|
"Salariu": "Зарплата",
|
||||||
"Salariu & comisioane": "Salariu & comisioane",
|
"Salariu & comisioane": "Salariu & comisioane",
|
||||||
"Salariu & marjă": "Зарплата и маржа",
|
"Salariu & marjă": "Зарплата и маржа",
|
||||||
"Salariu bază": "Базовая зарплата",
|
"Salariu bază": "Базовая зарплата",
|
||||||
@@ -1597,6 +1604,7 @@
|
|||||||
"Schimb ulei + filtru": "Замена масла + фильтр",
|
"Schimb ulei + filtru": "Замена масла + фильтр",
|
||||||
"Scoate din magazin": "Scoate din magazin",
|
"Scoate din magazin": "Scoate din magazin",
|
||||||
"Scrie mesajul tău...": "Scrie mesajul tău...",
|
"Scrie mesajul tău...": "Scrie mesajul tău...",
|
||||||
|
"Scule / consumabile": "Инструменты / расходники",
|
||||||
"Scăzut": "Низкий",
|
"Scăzut": "Низкий",
|
||||||
"Se completează automat când clientul scrie la bot": "Заполняется автоматически, когда клиент пишет боту",
|
"Se completează automat când clientul scrie la bot": "Заполняется автоматически, когда клиент пишет боту",
|
||||||
"Se procesează...": "Обработка...",
|
"Se procesează...": "Обработка...",
|
||||||
@@ -1695,7 +1703,7 @@
|
|||||||
"Stoc adăugat": "Stoc adăugat",
|
"Stoc adăugat": "Stoc adăugat",
|
||||||
"Stoc minim": "Stoc minim",
|
"Stoc minim": "Stoc minim",
|
||||||
"Stoc minim atins": "Достигнут мин. остаток",
|
"Stoc minim atins": "Достигнут мин. остаток",
|
||||||
"Stoc piese (la preț achiziție)": "Stoc piese (la preț achiziție)",
|
"Stoc piese (la preț achiziție)": "Остаток запчастей (по закупке)",
|
||||||
"Stock": "Остаток",
|
"Stock": "Остаток",
|
||||||
"Storage": "Хранение",
|
"Storage": "Хранение",
|
||||||
"Storage (MB)": "Storage (MB)",
|
"Storage (MB)": "Storage (MB)",
|
||||||
@@ -1752,6 +1760,7 @@
|
|||||||
"Tarifare": "Тарификация",
|
"Tarifare": "Тарификация",
|
||||||
"Task": "Задача",
|
"Task": "Задача",
|
||||||
"Tasks": "Задачи",
|
"Tasks": "Задачи",
|
||||||
|
"Taxe": "Налоги",
|
||||||
"Taxă depozitare": "Плата за хранение",
|
"Taxă depozitare": "Плата за хранение",
|
||||||
"Taxă livrare": "Плата за доставку",
|
"Taxă livrare": "Плата за доставку",
|
||||||
"Tehnice": "Технические",
|
"Tehnice": "Технические",
|
||||||
@@ -1817,7 +1826,7 @@
|
|||||||
"Toate produsele": "Все товары",
|
"Toate produsele": "Все товары",
|
||||||
"Toate rolurile": "Все роли",
|
"Toate rolurile": "Все роли",
|
||||||
"Toate statusurile": "Toate statusurile",
|
"Toate statusurile": "Toate statusurile",
|
||||||
"Toate timpurile": "Toate timpurile",
|
"Toate timpurile": "За всё время",
|
||||||
"Token generat!": "Token generat!",
|
"Token generat!": "Token generat!",
|
||||||
"Token public": "Token public",
|
"Token public": "Token public",
|
||||||
"Token revocat": "Token revocat",
|
"Token revocat": "Token revocat",
|
||||||
@@ -1826,20 +1835,20 @@
|
|||||||
"Top piese vândute": "Top piese vândute",
|
"Top piese vândute": "Top piese vândute",
|
||||||
"Tot apelul trebuie făcut pe subdomain-ul tău:": "Tot apelul trebuie făcut pe subdomain-ul tău:",
|
"Tot apelul trebuie făcut pe subdomain-ul tău:": "Tot apelul trebuie făcut pe subdomain-ul tău:",
|
||||||
"Total": "Итого",
|
"Total": "Итого",
|
||||||
"Total active": "Total active",
|
"Total active": "Всего активов",
|
||||||
"Total cheltuit": "Total cheltuit",
|
"Total cheltuit": "Всего потрачено",
|
||||||
"Total costuri": "Total costuri",
|
"Total costuri": "Всего затрат",
|
||||||
"Total deals active": "Всего активных сделок",
|
"Total deals active": "Всего активных сделок",
|
||||||
"Total general": "Общий итог",
|
"Total general": "Общий итог",
|
||||||
"Total ieșiri": "Total ieșiri",
|
"Total ieșiri": "Всего расходов",
|
||||||
"Total intrări": "Total intrări",
|
"Total intrări": "Всего поступлений",
|
||||||
"Total net": "Total net",
|
"Total net": "Total net",
|
||||||
"Total paid": "Всего оплачено",
|
"Total paid": "Всего оплачено",
|
||||||
"Total plătit": "Всего оплачено",
|
"Total plătit": "Всего оплачено",
|
||||||
"Total rezultate": "Всего результатов",
|
"Total rezultate": "Всего результатов",
|
||||||
"Total venituri": "Total venituri",
|
"Total venituri": "Всего доходов",
|
||||||
"Total în baza de date": "Всего в базе",
|
"Total în baza de date": "Всего в базе",
|
||||||
"Total încasat": "Total încasat",
|
"Total încasat": "Всего получено",
|
||||||
"Total înregistrate": "Всего зарегистрировано",
|
"Total înregistrate": "Всего зарегистрировано",
|
||||||
"Toți": "Все",
|
"Toți": "Все",
|
||||||
"Toți VIP-ii sunt în contact recent.": "Toți VIP-ii sunt în contact recent.",
|
"Toți VIP-ii sunt în contact recent.": "Toți VIP-ii sunt în contact recent.",
|
||||||
@@ -1885,6 +1894,7 @@
|
|||||||
"Ultima logare": "Ultima logare",
|
"Ultima logare": "Ultima logare",
|
||||||
"Ultima modificare": "Последнее изменение",
|
"Ultima modificare": "Последнее изменение",
|
||||||
"Ultima sincronizare": "Последняя синхронизация",
|
"Ultima sincronizare": "Последняя синхронизация",
|
||||||
|
"Ultimele 30 zile": "Последние 30 дней",
|
||||||
"Ultimul cod citit:": "Последний код:",
|
"Ultimul cod citit:": "Последний код:",
|
||||||
"Un depozit implicit a fost creat la migrare. Adaugă altele dacă ai locații fizice separate (sucursală, hală, mobil).": "Склад по умолчанию создан при миграции. Добавьте другие, если есть отдельные физические локации (филиал, ангар, мобильный).",
|
"Un depozit implicit a fost creat la migrare. Adaugă altele dacă ai locații fizice separate (sucursală, hală, mobil).": "Склад по умолчанию создан при миграции. Добавьте другие, если есть отдельные физические локации (филиал, ангар, мобильный).",
|
||||||
"Updated at": "Обновлён",
|
"Updated at": "Обновлён",
|
||||||
|
|||||||
@@ -99,7 +99,7 @@
|
|||||||
<table class="fn-tbl">
|
<table class="fn-tbl">
|
||||||
<tr><td>{{ __('Cost piese (achiziție)') }}</td><td class="fn-r fn-danger">{{ number_format($data['partsCost'], 2, '.', ' ') }}</td></tr>
|
<tr><td>{{ __('Cost piese (achiziție)') }}</td><td class="fn-r fn-danger">{{ number_format($data['partsCost'], 2, '.', ' ') }}</td></tr>
|
||||||
@foreach ($data['expensesByCat'] as $row)
|
@foreach ($data['expensesByCat'] as $row)
|
||||||
<tr><td>{{ \App\Models\Tenant\Expense::CATEGORIES[$row->category] ?? $row->category }}</td><td class="fn-r fn-danger">{{ number_format((float) $row->total, 2, '.', ' ') }}</td></tr>
|
<tr><td>{{ __(\App\Models\Tenant\Expense::CATEGORIES[$row->category] ?? $row->category) }}</td><td class="fn-r fn-danger">{{ number_format((float) $row->total, 2, '.', ' ') }}</td></tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
<tr style="border-top:2px solid #e5e7eb;"><td class="fn-bold">{{ __('Total costuri') }}</td><td class="fn-r fn-bold fn-danger">{{ number_format($data['partsCost'] + $data['totalExpenses'], 2, '.', ' ') }}</td></tr>
|
<tr style="border-top:2px solid #e5e7eb;"><td class="fn-bold">{{ __('Total costuri') }}</td><td class="fn-r fn-bold fn-danger">{{ number_format($data['partsCost'] + $data['totalExpenses'], 2, '.', ' ') }}</td></tr>
|
||||||
</table>
|
</table>
|
||||||
@@ -108,8 +108,8 @@
|
|||||||
<div class="fn-card" style="text-align:right;">
|
<div class="fn-card" style="text-align:right;">
|
||||||
<div class="fn-stat-l">{{ __('Profit net') }}</div>
|
<div class="fn-stat-l">{{ __('Profit net') }}</div>
|
||||||
<div class="fn-stat-v {{ $data['netProfit'] >= 0 ? 'fn-success' : 'fn-danger' }}">{{ number_format($data['netProfit'], 2, '.', ' ') }} MDL</div>
|
<div class="fn-stat-v {{ $data['netProfit'] >= 0 ? 'fn-success' : 'fn-danger' }}">{{ number_format($data['netProfit'], 2, '.', ' ') }} MDL</div>
|
||||||
<div style="font-size:12px;color:#6b7280;margin-top:4px;">Marjă: {{ $data['marginPct'] }}%</div>
|
<div style="font-size:12px;color:#6b7280;margin-top:4px;">{{ __('Marjă:') }} {{ $data['marginPct'] }}%</div>
|
||||||
<div style="font-size:11px;color:#9ca3af;margin-top:4px;">Marjă piese: {{ number_format($data['partsMargin'], 2, '.', ' ') }} MDL</div>
|
<div style="font-size:11px;color:#9ca3af;margin-top:4px;">{{ __('Marjă piese:') }} {{ number_format($data['partsMargin'], 2, '.', ' ') }} MDL</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@elseif ($tab === 'balance')
|
@elseif ($tab === 'balance')
|
||||||
|
|||||||
Reference in New Issue
Block a user