Merge branch 'master' of github.com:akaunting/akaunting

This commit is contained in:
Cüneyt Şentürk 2021-05-30 17:23:07 +03:00
commit 7e3b1b600e
40 changed files with 734 additions and 399 deletions

View File

@ -32,7 +32,7 @@ class Permissions extends ApiController
*/
public function show(Permission $permission)
{
return $this->response->item($permission, new Transformer());
return $this->item($permission, new Transformer());
}
/**
@ -45,7 +45,7 @@ class Permissions extends ApiController
{
$permission = $this->dispatch(new CreatePermission($request));
return $this->response->created(route('api.permissions.show', $permission->id));
return $this->response->created(route('api.permissions.show', $permission->id), $this->item($permission, new Transformer()));
}
/**

View File

@ -32,7 +32,7 @@ class Roles extends ApiController
*/
public function show(Role $role)
{
return $this->response->item($role, new Transformer());
return $this->item($role, new Transformer());
}
/**
@ -45,7 +45,7 @@ class Roles extends ApiController
{
$role = $this->dispatch(new CreateRole($request));
return $this->response->created(route('api.roles.show', $role->id));
return $this->response->created(route('api.roles.show', $role->id), $this->item($role, new Transformer()));
}
/**

View File

@ -39,7 +39,7 @@ class Users extends ApiController
$user = User::with('companies', 'permissions', 'roles')->where('email', $id)->first();
}
return $this->response->item($user, new Transformer());
return $this->item($user, new Transformer());
}
/**
@ -52,7 +52,7 @@ class Users extends ApiController
{
$user = $this->dispatch(new CreateUser($request));
return $this->response->created(route('api.users.show', $user->id));
return $this->response->created(route('api.users.show', $user->id), $this->item($user, new Transformer()));
}
/**

View File

@ -39,7 +39,7 @@ class Accounts extends ApiController
$account = Account::where('number', $id)->first();
}
return $this->response->item($account, new Transformer());
return $this->item($account, new Transformer());
}
/**
@ -52,7 +52,7 @@ class Accounts extends ApiController
{
$account = $this->dispatch(new CreateAccount($request));
return $this->response->created(route('api.accounts.show', $account->id));
return $this->response->created(route('api.accounts.show', $account->id), $this->item($account, new Transformer()));
}
/**

View File

@ -32,7 +32,7 @@ class Reconciliations extends ApiController
*/
public function show(Reconciliation $reconciliation)
{
return $this->response->item($reconciliation, new Transformer());
return $this->item($reconciliation, new Transformer());
}
/**
@ -45,7 +45,7 @@ class Reconciliations extends ApiController
{
$reconciliation = $this->dispatch(new CreateReconciliation($request));
return $this->response->created(route('api.reconciliations.show', $reconciliation->id));
return $this->response->created(route('api.reconciliations.show', $reconciliation->id), $this->item($reconciliation, new Transformer()));
}
/**

View File

@ -32,7 +32,7 @@ class Transactions extends ApiController
*/
public function show(Transaction $transaction)
{
return $this->response->item($transaction, new Transformer());
return $this->item($transaction, new Transformer());
}
/**
@ -45,7 +45,7 @@ class Transactions extends ApiController
{
$transaction = $this->dispatch(new CreateTransaction($request));
return $this->response->created(route('api.transactions.show', $transaction->id));
return $this->response->created(route('api.transactions.show', $transaction->id), $this->item($transaction, new Transformer()));
}
/**

View File

@ -62,7 +62,7 @@ class Transfers extends ApiController
*/
public function show(Transfer $transfer)
{
return $this->response->item($transfer, new Transformer());
return $this->item($transfer, new Transformer());
}
/**
@ -75,7 +75,7 @@ class Transfers extends ApiController
{
$transfer = $this->dispatch(new CreateTransfer($request));
return $this->response->created(route('api.transfers.show', $transfer->id));
return $this->response->created(route('api.transfers.show', $transfer->id), $this->item($transfer, new Transformer()));
}
/**

View File

@ -40,7 +40,7 @@ class Companies extends ApiController
// Check if user can access company
$this->canAccess($company);
return $this->response->item($company, new Transformer());
return $this->item($company, new Transformer());
} catch (\Exception $e) {
$this->response->errorUnauthorized($e->getMessage());
}
@ -56,7 +56,7 @@ class Companies extends ApiController
{
$company = $this->dispatch(new CreateCompany($request));
return $this->response->created(route('api.companies.show', $company->id));
return $this->response->created(route('api.companies.show', $company->id), $this->item($company, new Transformer()));
}
/**

View File

@ -42,7 +42,7 @@ class Contacts extends ApiController
$contact = Contact::where('email', $id)->first();
}
return $this->response->item($contact, new Transformer());
return $this->item($contact, new Transformer());
}
/**
@ -55,7 +55,7 @@ class Contacts extends ApiController
{
$contact = $this->dispatch(new CreateContact($request));
return $this->response->created(route('api.contacts.show', $contact->id));
return $this->response->created(route('api.contacts.show', $contact->id), $this->item($contact, new Transformer()));
}
/**

View File

@ -42,7 +42,7 @@ class Dashboards extends ApiController
// Check if user can access dashboard
$this->canAccess($dashboard);
return $this->response->item($dashboard, new Transformer());
return $this->item($dashboard, new Transformer());
} catch (\Exception $e) {
$this->response->errorUnauthorized($e->getMessage());
}
@ -58,7 +58,7 @@ class Dashboards extends ApiController
{
$dashboard = $this->dispatch(new CreateDashboard($request));
return $this->response->created(route('api.dashboards.show', $dashboard->id));
return $this->response->created(route('api.dashboards.show', $dashboard->id), $this->item($dashboard, new Transformer()));
}
/**

View File

@ -34,7 +34,7 @@ class Items extends ApiController
{
$item = Item::with('category', 'taxes')->find($id);
return $this->response->item($item, new Transformer());
return $this->item($item, new Transformer());
}
/**
@ -47,7 +47,7 @@ class Items extends ApiController
{
$item = $this->dispatch(new CreateItem($request));
return $this->response->created(route('api.items.show', $item->id));
return $this->response->created(route('api.items.show', $item->id), $this->item($item, new Transformer()));
}
/**

View File

@ -32,7 +32,7 @@ class Reports extends ApiController
*/
public function show(Report $report)
{
return $this->response->item($report, new Transformer());
return $this->item($report, new Transformer());
}
/**
@ -45,7 +45,7 @@ class Reports extends ApiController
{
$report = $this->dispatch(new CreateReport($request));
return $this->response->created(route('api.reports.show', $report->id));
return $this->response->created(route('api.reports.show', $report->id), $this->item($report, new Transformer()));
}
/**

View File

@ -48,7 +48,7 @@ class DocumentTransactions extends ApiController
{
$transaction = Transaction::documentId($document_id)->find($id);
return $this->response->item($transaction, new Transformer());
return $this->item($transaction, new Transformer());
}
/**
@ -64,7 +64,7 @@ class DocumentTransactions extends ApiController
$transaction = $this->dispatch(new CreateBankingDocumentTransaction($document, $request));
return $this->response->created(route('api.documents.transactions.show', [$document_id, $transaction->id]));
return $this->response->created(route('api.documents.transactions.show', [$document_id, $transaction->id]), $this->item($transaction, new Transformer()));
}
/**

View File

@ -39,7 +39,7 @@ class Documents extends ApiController
$document = Document::where('document_number', $id)->first();
}
return $this->response->item($document, new Transformer());
return $this->item($document, new Transformer());
}
/**
@ -53,7 +53,7 @@ class Documents extends ApiController
{
$document = $this->dispatch(new CreateDocument($request));
return $this->response->created(route('api.documents.show', $document->id));
return $this->response->created(route('api.documents.show', $document->id), $this->item($document, new Transformer()));
}
/**
@ -68,7 +68,7 @@ class Documents extends ApiController
{
$document = $this->dispatch(new UpdateDocument($document, $request));
return $this->response->item($document->fresh(), new Transformer());
return $this->item($document->fresh(), new Transformer());
}
/**

View File

@ -32,7 +32,7 @@ class Categories extends ApiController
*/
public function show(Category $category)
{
return $this->response->item($category, new Transformer());
return $this->item($category, new Transformer());
}
/**
@ -45,7 +45,7 @@ class Categories extends ApiController
{
$category = $this->dispatch(new CreateCategory($request));
return $this->response->created(route('api.categories.show', $category->id));
return $this->response->created(route('api.categories.show', $category->id), $this->item($category, new Transformer()));
}
/**

View File

@ -39,7 +39,7 @@ class Currencies extends ApiController
$currency = Currency::where('code', $id)->first();
}
return $this->response->item($currency, new Transformer());
return $this->item($currency, new Transformer());
}
/**
@ -52,7 +52,7 @@ class Currencies extends ApiController
{
$currency = $this->dispatch(new CreateCurrency($request));
return $this->response->created(route('api.currencies.show', $currency->id));
return $this->response->created(route('api.currencies.show', $currency->id), $this->item($currency, new Transformer()));
}
/**

View File

@ -39,7 +39,7 @@ class Settings extends ApiController
$setting = Setting::where('key', $id)->first();
}
return $this->response->item($setting, new Transformer());
return $this->item($setting, new Transformer());
}
/**
@ -52,7 +52,7 @@ class Settings extends ApiController
{
$setting = Setting::create($request->all());
return $this->response->created(route('api.settings.show', $setting->id));
return $this->response->created(route('api.settings.show', $setting->id), $this->item($setting, new Transformer()));
}
/**
@ -66,7 +66,7 @@ class Settings extends ApiController
{
$setting->update($request->all());
return $this->response->item($setting->fresh(), new Transformer());
return $this->item($setting->fresh(), new Transformer());
}
/**

View File

@ -32,7 +32,7 @@ class Taxes extends ApiController
*/
public function show(Tax $tax)
{
return $this->response->item($tax, new Transformer());
return $this->item($tax, new Transformer());
}
/**
@ -45,7 +45,7 @@ class Taxes extends ApiController
{
$tax = $this->dispatch(new CreateTax($request));
return $this->response->created(route('api.taxes.show', $tax->id));
return $this->response->created(route('api.taxes.show', $tax->id), $this->item($tax, new Transformer()));
}
/**

View File

@ -125,8 +125,8 @@ class Data extends Controller
$company->api_key = setting('apps.api_key');
$company->financial_start = setting('localisation.financial_start');
if ($company->logo) {
$logo = \Plank\Mediable\Media::find($company->logo);
if ($company->company_logo) {
$logo = $company->logo;
$logo->path = route('uploads.get', $logo->id);

View File

@ -115,129 +115,140 @@ import AkauntingDate from "./../../components/AkauntingDate";
import WizardAction from "./../../mixins/wizardAction";
export default {
name: "Company",
mixins: [WizardAction],
components: {
[Step.name]: Step,
[Steps.name]: Steps,
AkauntingDropzoneFileUpload,
AkauntingDate,
},
props: {
company: {
type: [Object, Array],
},
translations: {
type: [Object, Array],
},
url: {
type: String,
default: "text",
},
},
data() {
return {
active: 0,
logo: [],
real_date: "",
};
},
mounted() {
let company_data = this.company;
this.onDataWatch(company_data);
},
watch: {
company: function (company) {
this.onDataWatch(company);
},
},
methods: {
onDataWatch(company) {
if (Object.keys(company).length) {
let logo_arr = [
{
id: company.logo.id,
name: company.logo.filename + "." + company.logo.extension,
path: company.logo.path,
type: company.logo.mime_type,
size: company.logo.size,
downloadPath: false,
},
];
this.logo.push(logo_arr);
this.real_date = company.financial_start;
}
name: "Company",
mixins: [WizardAction],
components: {
[Step.name]: Step,
[Steps.name]: Steps,
AkauntingDropzoneFileUpload,
AkauntingDate,
},
onEditSave() {
FormData.prototype.appendRecursive = function (data, wrapper = null) {
for (var name in data) {
if (name == "previewElement" || name == "previewTemplate") {
continue;
}
if (wrapper) {
if (
(typeof data[name] == "object" || Array.isArray(data[name])) &&
data[name] instanceof File != true &&
data[name] instanceof Blob != true
) {
this.appendRecursive(data[name], wrapper + "[" + name + "]");
} else {
this.append(wrapper + "[" + name + "]", data[name]);
}
} else {
if (
(typeof data[name] == "object" || Array.isArray(data[name])) &&
data[name] instanceof File != true &&
data[name] instanceof Blob != true
) {
this.appendRecursive(data[name], name);
} else {
this.append(name, data[name]);
}
}
}
};
props: {
company: {
type: [Object, Array],
},
const formData = new FormData(this.$refs["form"]);
let data_name = {};
translations: {
type: [Object, Array],
},
url: {
type: String,
default: "text",
},
},
data() {
return {
active: 0,
logo: [],
real_date: "",
};
},
mounted() {
let company_data = this.company;
this.onDataWatch(company_data);
},
methods: {
onDataWatch(company) {
if (Object.keys(company).length) {
let logo_arr = [{
id: company.logo.id,
name: company.logo.filename + "." + company.logo.extension,
path: company.logo.path,
type: company.logo.mime_type,
size: company.logo.size,
downloadPath: false,
}];
this.logo.push(logo_arr);
this.real_date = company.financial_start;
}
},
onEditSave() {
FormData.prototype.appendRecursive = function (data, wrapper = null) {
for (var name in data) {
if (name == "previewElement" || name == "previewTemplate") {
continue;
}
if (wrapper) {
if (
(typeof data[name] == "object" || Array.isArray(data[name])) &&
data[name] instanceof File != true &&
data[name] instanceof Blob != true
) {
this.appendRecursive(data[name], wrapper + "[" + name + "]");
} else {
this.append(wrapper + "[" + name + "]", data[name]);
}
} else {
if (
(typeof data[name] == "object" || Array.isArray(data[name])) &&
data[name] instanceof File != true &&
data[name] instanceof Blob != true
) {
this.appendRecursive(data[name], name);
} else {
this.append(name, data[name]);
}
}
}
};
const formData = new FormData(this.$refs["form"]);
let data_name = {};
for (let [key, val] of formData.entries()) {
Object.assign(data_name, {
[key]: val,
["logo"]: this.$refs.dropzoneWizard.files[1]
? this.$refs.dropzoneWizard.files[1]
: this.$refs.dropzoneWizard.files[0],
["_prefix"]: "company",
["_token"]: window.Laravel.csrfToken,
["_method"]: "POST",
});
}
for (let [key, val] of formData.entries()) {
Object.assign(data_name, {
[key]: val,
["logo"]: this.$refs.dropzoneWizard.files[1]
? this.$refs.dropzoneWizard.files[1]
: this.$refs.dropzoneWizard.files[0],
["_prefix"]: "company",
["_token"]: window.Laravel.csrfToken,
["_method"]: "POST",
});
}
formData.appendRecursive(data_name);
window
.axios({
method: "POST",
url: url + "/wizard/companies",
data: formData,
headers: {
"X-CSRF-TOKEN": window.Laravel.csrfToken,
"X-Requested-With": "XMLHttpRequest",
"Content-Type": "multipart/form-data",
},
})
.then((response) => {
this.onSuccessMessage(response);
this.$router.push("/wizard/currencies");
}, this)
.catch((error) => {
}, this);
formData.appendRecursive(data_name);
window.axios({
method: "POST",
url: url + "/wizard/companies",
data: formData,
headers: {
"X-CSRF-TOKEN": window.Laravel.csrfToken,
"X-Requested-With": "XMLHttpRequest",
"Content-Type": "multipart/form-data",
},
})
.then((response) => {
this.onSuccessMessage(response);
this.$router.push("/wizard/currencies");
}, this)
.catch((error) => {
}, this);
},
next() {
if (this.active++ > 2);
this.$router.push("/wizard/currencies");
},
},
next() {
if (this.active++ > 2);
this.$router.push("/wizard/currencies");
watch: {
company: function (company) {
this.onDataWatch(company);
},
},
},
};
</script>

View File

@ -299,124 +299,133 @@ import MixinsGlobal from "./../../mixins/global";
import WizardAction from "./../../mixins/wizardAction";
export default {
name: "Currencies",
mixins: [MixinsGlobal, WizardAction],
components: {
[Step.name]: Step,
[Steps.name]: Steps,
[Select.name]: Select,
[Option.name]: Option,
AkauntingRadioGroup,
},
props: {
currencies: {
type: [Object, Array],
},
currency_codes: {
type: [Object, Array],
},
translations: {
type: [Object, Array],
},
},
data() {
return {
active: 1,
bulk_action: new BulkAction(url + "/settings/currencies"),
};
},
methods: {
onSwitchUpdate(item) {
this.onStatus(item.id, event);
this.onStatusControl(this.currencies, item.id, event);
name: "Currencies",
mixins: [MixinsGlobal, WizardAction],
components: {
[Step.name]: Step,
[Steps.name]: Steps,
[Select.name]: Select,
[Option.name]: Option,
AkauntingRadioGroup,
},
onClickDelete(item) {
this.confirmDelete(
`${
new URL(url).protocol +
"//" +
location.host +
location.pathname +
"/" +
item.id
}`,
this.translations.currencies.title,
`Confirm Delete <strong>${item.name}</strong> ${this.translations.currencies.title}?`,
this.translations.currencies.cancel,
this.translations.currencies.delete
);
props: {
currencies: {
type: [Object, Array],
},
currency_codes: {
type: [Object, Array],
},
translations: {
type: [Object, Array],
},
},
onDeleteCurrency(event) {
this.onEjetItem(event, this.currencies, event.currency_id);
data() {
return {
active: 1,
bulk_action: new BulkAction(url + "/settings/currencies"),
};
},
onChangeCodeItem(code) {
const formData = new FormData(this.$refs["form"]);
const data = {
rate: "",
precision: "",
symbol: "",
symbol_first: "",
decimal_mark: "",
thousands_separator: "",
};
methods: {
onSwitchUpdate(item) {
this.onStatus(item.id, event);
for (let [key, val] of formData.entries()) {
Object.assign(data, {
[key]: val,
});
}
this.onStatusControl(this.currencies, item.id, event);
},
window
.axios({
method: "GET",
url: url + "/settings/currencies/config",
params: {
code: code,
},
})
.then((response) => {
data.rate = response.data.rate;
data.precision = response.data.precision;
data.symbol = response.data.symbol;
data.symbol_first = response.data.symbol_first;
data.decimal_mark = response.data.decimal_mark;
data.thousands_separator = response.data.thousands_separator;
this.model.rate = response.data.rate;
}, this);
onClickDelete(item) {
this.confirmDelete(
`${
new URL(url).protocol +
"//" +
location.host +
location.pathname +
"/" +
item.id
}`,
this.translations.currencies.title,
`Confirm Delete <strong>${item.name}</strong> ${this.translations.currencies.title}?`,
this.translations.currencies.cancel,
this.translations.currencies.delete
);
},
onDeleteCurrency(event) {
this.onEjetItem(event, this.currencies, event.currency_id);
},
onChangeCodeItem(code) {
const formData = new FormData(this.$refs["form"]);
const data = {
rate: "",
precision: "",
symbol: "",
symbol_first: "",
decimal_mark: "",
thousands_separator: "",
};
for (let [key, val] of formData.entries()) {
Object.assign(data, {
[key]: val,
});
}
window.axios({
method: "GET",
url: url + "/settings/currencies/config",
params: {
code: code,
},
})
.then((response) => {
data.rate = response.data.rate;
data.precision = response.data.precision;
data.symbol = response.data.symbol;
data.symbol_first = response.data.symbol_first;
data.decimal_mark = response.data.decimal_mark;
data.thousands_separator = response.data.thousands_separator;
this.model.rate = response.data.rate;
}, this);
},
onEditForm(item) {
this.onSubmitEvent(
"PATCH",
url + "/wizard/currencies/" + item.id,
"",
this.currencies,
item.id
);
},
onSubmitForm() {
this.onSubmitEvent(
"POST",
url + "/wizard/currencies",
"",
this.currencies
);
},
prev() {
if (this.active-- > 2);
history.back()
this.$router.push("/wizard/companies");
},
next() {
if (this.active++ > 2);
this.$router.push("/wizard/taxes");
},
},
onEditForm(item) {
this.onSubmitEvent(
"PATCH",
url + "/wizard/currencies/" + item.id,
"",
this.currencies,
item.id
);
},
onSubmitForm() {
this.onSubmitEvent(
"POST",
url + "/wizard/currencies",
"",
this.currencies
);
},
prev() {
if (this.active-- > 2);
history.back()
this.$router.push("/wizard/companies");
},
next() {
if (this.active++ > 2);
this.$router.push("/wizard/taxes");
},
},
};
</script>

View File

@ -1,5 +1,5 @@
<template>
<div v-if="is_loaded">
<div>
<h1 class="text-white">{{ translations.finish.title }}</h1>
<div class="card">
<div class="card-header wizard-header p-3">
@ -87,57 +87,61 @@
import { Step, Steps } from "element-ui";
export default {
name: "Finish",
components: {
[Step.name]: Step,
[Steps.name]: Steps,
},
created() {
window
.axios({
method: "PATCH",
url: url + "/wizard/finish",
})
.then((response) => {
if (response.status == "200") {
this.is_loaded = true;
name: "Finish",
components: {
[Step.name]: Step,
[Steps.name]: Steps,
},
props: {
modules: {
type: [Object, Array],
},
translations: {
type: [Object, Array],
}
})
.catch((error) => {
this.$notify({
message: this.translations.finish.error_message,
timeout: 1000,
icon: "fas fa-bell",
type: 0
},
data() {
return {
active: 3,
route_url: url,
};
},
created() {
window.axios({
method: "PATCH",
url: url + "/wizard/finish",
})
.then((response) => {
})
.catch((error) => {
this.$notify({
message: this.translations.finish.error_message,
timeout: 1000,
icon: "fas fa-bell",
type: 0
});
this.prev();
});
this.prev();
});
},
props: {
modules: {
type: [Object, Array],
},
translations: {
type: [Object, Array],
}
},
data() {
return {
active: 3,
route_url: url,
is_loaded: false
};
},
methods: {
prev() {
if (this.active-- > 2);
this.$router.push("/wizard/taxes");
},
finish() {
window.location.href = url;
methods: {
prev() {
this.active--;
if (this.active > 2) {
this.$router.push("/wizard/taxes");
}
},
finish() {
window.location.href = url;
},
},
},
};
</script>

View File

@ -229,82 +229,89 @@ import MixinsGlobal from "./../../mixins/global";
import WizardAction from "./../../mixins/wizardAction";
export default {
name: "Taxes",
mixins: [MixinsGlobal, WizardAction],
components: {
[Step.name]: Step,
[Steps.name]: Steps,
AkauntingRadioGroup,
},
props: {
taxes: {
type: [Object, Array],
},
translations: {
type: [Object, Array],
},
},
data() {
return {
active: 2,
bulk_action: new BulkAction(url + "/settings/taxes"),
};
},
methods: {
onSwitchUpdate(item) {
this.onStatus(item.id, event);
this.onStatusControl(this.taxes, item.id, event);
name: "Taxes",
mixins: [MixinsGlobal, WizardAction],
components: {
[Step.name]: Step,
[Steps.name]: Steps,
AkauntingRadioGroup,
},
onClickDelete(item) {
this.confirmDelete(
`${
new URL(url).protocol +
"//" +
location.host +
location.pathname +
"/" +
item.id
}`,
this.translations.taxes.title,
`${
this.translations.currencies.title +
"&nbsp;" +
this.translations.currencies.delete
} <strong>${item.name}</strong>?`,
this.translations.taxes.cancel,
this.translations.taxes.delete
);
props: {
taxes: {
type: [Object, Array],
},
translations: {
type: [Object, Array],
},
},
onDeleteCurrency(event) {
this.onEjetItem(event, this.taxes, event.tax_id);
data() {
return {
active: 2,
bulk_action: new BulkAction(url + "/settings/taxes"),
};
},
onEditForm(item) {
this.onSubmitEvent(
"PATCH",
url + "/wizard/taxes/" + item.id,
"type",
this.taxes,
item.id
);
},
methods: {
onSwitchUpdate(item) {
this.onStatus(item.id, event);
onSubmitForm() {
this.onSubmitEvent("POST", url + "/wizard/taxes", "type", this.taxes);
},
this.onStatusControl(this.taxes, item.id, event);
},
prev() {
if (this.active-- > 2);
this.$router.push("/wizard/currencies");
},
onClickDelete(item) {
this.confirmDelete(
`${
new URL(url).protocol +
"//" +
location.host +
location.pathname +
"/" +
item.id
}`,
this.translations.taxes.title,
`${
this.translations.currencies.title +
"&nbsp;" +
this.translations.currencies.delete
} <strong>${item.name}</strong>?`,
this.translations.taxes.cancel,
this.translations.taxes.delete
);
},
next() {
if (this.active++ > 2);
this.$router.push("/wizard/finish");
onDeleteCurrency(event) {
this.onEjetItem(event, this.taxes, event.tax_id);
},
onEditForm(item) {
this.onSubmitEvent(
"PATCH",
url + "/wizard/taxes/" + item.id,
"type",
this.taxes,
item.id
);
},
onSubmitForm() {
this.onSubmitEvent("POST", url + "/wizard/taxes", "type", this.taxes);
},
prev() {
if (this.active-- > 2);
this.$router.push("/wizard/currencies");
},
next() {
if (this.active++ > 2);
this.$router.push("/wizard/finish");
},
},
},
};
</script>

View File

@ -7,19 +7,19 @@ return [
'login' => 'Logi sisse',
'login_to' => 'Sessiooni alustamiseks logi sisse',
'remember_me' => 'Jäta mind meelde',
'forgot_password' => 'Unustasin oma parooli',
'forgot_password' => 'Ma unustasin oma parooli',
'reset_password' => 'Lähtesta parool',
'enter_email' => 'Sisesta oma e-posti aadress',
'current_email' => 'Praegune e-mail',
'current_email' => 'Praegune e-kiri',
'reset' => 'Lähesta',
'never' => 'mitte kunagi',
'landing_page' => 'Sihtleht',
'password' => [
'current' => 'Parool',
'current_confirm' => 'Parooli kinnitus',
'new' => 'Uus parool',
'new_confirm' => 'Uue parooli kinnitus',
'current_confirm' => 'Salasõna kinnitus',
'new' => 'Uus salasõna',
'new_confirm' => 'Uue salasõna kinnitus',
],
'error' => [
@ -28,7 +28,7 @@ return [
'no_company' => 'Viga: teie kontole pole määratud ühtegi ettevõtet. Palun pöörduge süsteemiadministraatori poole.',
],
'failed' => 'Need andmed ei klapi meie kirjetega.',
'failed' => 'Andmed ei kattu.',
'disabled' => 'See konto on keelatud. Palun pöörduge süsteemiadministraatori poole.',
'throttle' => 'Liiga palju sisselogimise katseid. Palun proovi uuesti :seconds sekundi pärast.',

View File

@ -4,7 +4,7 @@ return [
'bill_number' => 'Arve number',
'bill_date' => 'Arve kuupäev',
'total_price' => 'Koguhind',
'total_price' => 'Hind kokku',
'due_date' => 'Tähtaeg',
'order_number' => 'Tellimuse number',
'bill_from' => 'Arve saatja',
@ -14,17 +14,17 @@ return [
'sub_total' => 'Vahesumma',
'discount' => 'Allahindlus',
'item_discount' => 'Rea soodustus',
'tax_total' => 'Maksud kokku',
'tax_total' => 'Käibemaks kokku',
'total' => 'Kokku',
'item_name' => 'Kauba nimi | Kauba nimed',
'item_name' => 'Kauba nimi|Kauba nimed',
'show_discount' => 'Soodustus :discount%',
'show_discount' => ':discount% allahindlus',
'add_discount' => 'Lisa allahindlus',
'discount_desc' => 'vahesummast',
'payment_due' => 'Makse tähtaeg',
'amount_due' => 'Tasumisele kuuluv summa',
'amount_due' => 'Maksmisele kuuluv summa',
'paid' => 'Makstud',
'histories' => 'Ajalood',
'payments' => 'Maksed',
@ -33,7 +33,7 @@ return [
'mark_received' => 'Makse on saabunud',
'mark_cancelled' => 'Märgi tühistatuks',
'download_pdf' => 'Laadi alla PDF',
'send_mail' => 'Saada kiri',
'send_mail' => 'Saada e-kiri',
'create_bill' => 'Loo arve',
'receive_bill' => 'Arve vastuvõtmine',
'make_payment' => 'Tee makse',

View File

@ -16,6 +16,8 @@ return [
'sent' => 'Kas olete kindel, et soovite valitud arve märkida kui <b>saadetud</b>?|Kas soovite kindlasti märkida valitud arved kui <b>saadetud</b>?',
'received' => 'Kas olete kindel, et soovite valitud arve märkida kui <b>vastuvõetud</b>?|Kas soovite kindlasti märkida valitud arved kui <b>vastuvõetud</b>?',
'cancelled' => 'Kas soovite kindlasti valitud kirje <b>tühistada</b>?|Kas soovite kindlasti valitud kirjed <b>tühistada</b>?',
'reconcile' => 'Kas soovite kindlasti valitud kirje <b>lubada</b>?|Kas soovite kindlasti valitud kirjed <b>lubada</b>?',
'unreconcile' => 'Kas soovite kindlasti valitud kirje <b>lubada</b>?|Kas soovite kindlasti valitud kirjed <b>lubada</b>?',
],
];

View File

@ -8,6 +8,7 @@ return [
'decimal_mark' => 'Kümnendmärk',
'thousands_separator' => 'Tuhandeliste eraldaja',
'precision' => 'Täpsus',
'conversion' => 'Valuutavahetus: :price (:currency_code) :currency_rate',
'symbol' => [
'symbol' => 'Sümbol',
'position' => 'Sümbol seisukoht',

View File

@ -0,0 +1,11 @@
<?php
return [
'error' => [
'not_user_dashboard' => 'Viga: Teil pole lubatud seda töölaudet muuta!',
'delete_last' => 'Viga: viimast töölaudet ei saa kustutada. Palun looge kõigepealt uus!',
'disable_last' => 'Viga: viimast töölaudet ei saa keelata. Palun looge kõigepealt uus!',
],
];

View File

@ -0,0 +1,34 @@
<?php
return [
'accounts' => [
'cash' => 'Sularaha',
],
'categories' => [
'deposit' => 'Hoius',
'sales' => 'Müük',
],
'currencies' => [
'usd' => 'USA Dollar',
'eur' => 'Euro',
'gbp' => 'Inglise nael',
'try' => 'Türgi liir',
],
'offline_payments' => [
'cash' => 'Sularaha',
'bank' => 'Pangaülekanne',
],
'reports' => [
'income' => 'Kuu sissetuleku kokkuvõte kategooriate kaupa.',
'expense' => 'Kuu kulude kokkuvõte kategooriate kaupa.',
'income_expense' => 'Kuu sissetulek vs kulu kategooriate kaupa.',
'tax' => 'Kvartaalne maksu kokkuvõte.',
'profit_loss' => 'Kvartali kasum ja kahjum kategooriate kaupa.',
],
];

View File

@ -0,0 +1,54 @@
<?php
return [
'edit_columns' => 'Redigeeri veerge',
'empty_items' =>'Te pole midagi lisanud.',
'statuses' => [
'draft' => 'Mustand',
'sent' => 'Saadetud',
'expired' => 'Aegunud',
'viewed' => 'Vaadatud',
'approved' => 'Kinnitatud',
'received' => 'Vastuvõetud',
'refused' => 'Tagasi lükatud',
'restored' => 'Taastatud',
'reversed' => 'Tühistatud',
'partial' => 'Osaline',
'paid' => 'Makstud',
'pending' => 'Ootel',
'invoiced' => 'Arve esitatud',
'overdue' => 'Tähtaja ületanud',
'unpaid' => 'Maksmata',
'cancelled' => 'Tühistatud',
'voided' => 'Kehtetu',
'completed' => 'Lõpetatud',
'shipped' => 'Saadetud',
'refunded' => 'Tagasi makstud',
'failed' => 'Ebaõnnestus!',
'denied' => 'Keelatud',
'processed' => 'Töödeldud',
'open' => 'Avatud',
'closed' => 'Suletud ',
'billed' => 'Arve esitatud',
'delivered' => 'Kohaletoimetatud',
'returned' => 'Tagastatud',
'drawn' => 'Tõmmatud',
'not_billed' => 'Arvet pole esitatud',
'issued' => 'Väljastatud',
'not_invoiced' => 'Arvet pole esitatud',
'confirmed' => 'Kinnitatud',
'not_confirmed' => 'Pole kinnitatud',
],
'messages' => [
'email_sent' => ':type e-kiri oli saadetud!',
'marked_as' => ':type märgitud kui :status!',
'marked_sent' => ':type märgitud saadetuks!',
'marked_paid' => ':type märgitud makstuks!',
'marked_viewed' => ':type märgitud vaadatud!',
'marked_cancelled' => ':type märgitud tühistatuks!',
'marked_received' => ':type märgitud et kätte saanud!',
],
];

View File

@ -3,7 +3,7 @@
return [
'import' => 'Impordi',
'title' => 'Import :liik',
'title' => 'Import :type',
'message' => 'Lubatud failitüübid: XLS, XLSX. Palun <a target="_blank" href=":link"><strong>laadi alla</strong></a> näidisfail.',
];

View File

@ -2,7 +2,8 @@
return [
'sales_price' => 'Müügihind',
'purchase_price' => 'Ostuhind',
'sales_price' => 'Müügihind',
'purchase_price' => 'Ostuhind',
'enter_item_description' => 'Sisesta ühikku kirjeldus',
];

View File

@ -0,0 +1,9 @@
<?php
return [
'title' => 'Hoolduses',
'message' => 'Vabandust, me oleme hoolduseks maas. Palun proovi hiljem uuesti!',
];

View File

@ -0,0 +1,23 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Password Reset Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are the default lines which match reasons
| that are given by the password broker for a password update attempt
| has failed, such as for an invalid token or invalid new password.
|
*/
'password' => 'Parool peab olema vähemalt 6 tähemärki pikk ja vastama kinnitusele.',
'reset' => 'Sinu parool on lähtestatud!',
'sent' => 'Oleme saatnud sulle e-postiga parooli lähtestamise lingi!',
'token' => 'See parooli lähtestamise tunnus on vigane.',
'user' => "Ei suutnud leida sellise e-posti aadressiga kasutajat.",
'throttle' => 'Palun oodake enne uuesti proovimist.',
];

View File

@ -5,7 +5,7 @@ return [
'recurring' => 'Korduv',
'every' => 'Iga',
'period' => 'Periood',
'times' => 'Korda',
'times' => 'Ajad',
'daily' => 'Iga päev',
'weekly' => 'Iganädalane',
'monthly' => 'Igakuine',

View File

@ -0,0 +1,31 @@
<?php
return [
'years' => 'Aasta | Aastad',
'this_year' => 'Käesolev aasta',
'previous_year' => 'Eelmine aasta',
'this_quarter' => 'See kvartal',
'previous_quarter' => 'Eelmine kvartal',
'last_12_months' => 'Viimased 12 kuud',
'profit_loss' => 'Kasum ja kahjum',
'gross_profit' => 'Bruto',
'net_profit' => 'Puhaskasum',
'total_expenses' => 'Kulud kokku',
'net' => 'Neto',
'income_expense' => 'Sissetulekud ja kulud',
'summary' => [
'income' => 'Sissetulekute kokkuvõte',
'expense' => 'Kulude kokkuvõte',
'income_expense' => 'Sissetulekud versus kulud',
'tax' => 'Maksude kokkuvõte',
],
'charts' => [
'line' => 'Liin',
'bar' => 'Riba',
'pie' => 'Pie',
],
];

View File

@ -0,0 +1,15 @@
<?php
return [
'installed_version' => 'Paigaldatud versioon',
'latest_version' => 'Viimane versioon',
'update' => 'Värskenda Akaunting :version versioonile',
'changelog' => 'Muudatuste logi',
'check' => 'Kontrolli',
'new_core' => 'Saadaval on uuem Akaunting-u versioon.',
'latest_core' => 'Õnnitlused! Kasutad juba viimast Akauntingu versiooni. Tulevased turvaparandused paigaldatakse automaatselt.',
'success' => 'Värskendamine on lõpetatud.',
'error' => 'Värskendamine ebaõnnestus. Palun proovi uuesti.',
];

View File

@ -0,0 +1,123 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Validation Language Lines
|--------------------------------------------------------------------------
|
| The following language lines contain the default error messages used by
| the validator class. Some of these rules have multiple versions such
| as the size rules. Feel free to tweak each of these messages here.
|
*/
'accepted' => ':attribute tuleb aktsepteerida.',
'active_url' => ':attribute ei ole kehtiv URL.',
'after' => ':attribute peab olema kuupäev pärast :date.',
'after_or_equal' => ':attribute peab olema kuupäev pärast või samastuma :date.',
'alpha' => ':attribute võib sisaldada vaid tähemärke.',
'alpha_dash' => ':attribute võib sisaldada vaid tähti, numbreid ja kriipse.',
'alpha_num' => ':attribute võib sisaldada vaid tähti ja numbreid.',
'array' => ':attribute peab olema massiiv.',
'before' => ':attribute peab olema kuupäev enne :date.',
'before_or_equal' => ':attribute peab olema kuupäev enne või samastuma :date.',
'between' => [
'numeric' => ':attribute peab olema :min ja :max vahel.',
'file' => ':attribute peab olema :min ja :max kilobaidi vahel.',
'string' => ':attribute peab olema :min ja :max tähemärgi vahel.',
'array' => ':attribute peab olema :min ja :max kirje vahel.',
],
'boolean' => ':attribute väli peab olema tõene või väär.',
'confirmed' => ':attribute kinnitus ei vasta.',
'date' => ':attribute pole kehtiv kuupäev.',
'date_format' => ':attribute ei vasta formaadile :format.',
'different' => ':attribute ja :other peavad olema erinevad.',
'digits' => ':attribute peab olema :digits numbrit.',
'digits_between' => ':attribute peab olema :min ja :max numbri vahel.',
'dimensions' => ':attribute on valed pildi suurused.',
'distinct' => ':attribute väljal on topeltväärtus.',
'email' => ':attribute peab olema kehtiv e-posti aadress.',
'ends_with' => ':attribute lubatud on failid laiendiga: :values',
'exists' => 'Valitud :attribute on vigane.',
'file' => ':attribute peab olema fail.',
'filled' => ':attribute väli on nõutav.',
'image' => ':attribute peab olema pilt.',
'in' => 'Valitud :attribute on vigane.',
'in_array' => ':attribute väli ei eksisteeri :other sees.',
'integer' => ':attribute peab olema täisarv.',
'ip' => ':attribute peab olema kehtiv IP aadress.',
'json' => ':attribute peab olema kehtiv JSON string.',
'max' => [
'numeric' => ':attribute ei tohi olla suurem kui :max.',
'file' => ':attribute ei tohi olla suurem kui :max kilobaiti.',
'string' => ':attribute ei tohi olla suurem kui :max tähemärki.',
'array' => ':attribute ei tohi sisaldada rohkem kui :max kirjet.',
],
'mimes' => ':attribute peab olema :values tüüpi.',
'mimetypes' => ':attribute peab olema :values tüüpi.',
'min' => [
'numeric' => ':attribute peab olema vähemalt :min.',
'file' => ':attribute peab olema vähemalt :min kilobaiti.',
'string' => ':attribute peab olema vähemalt :min tähemärki.',
'array' => ':attribute peab olema vähemalt :min kirjet.',
],
'not_in' => 'Valitud :attribute on vigane.',
'numeric' => ':attribute peab olema number.',
'present' => ':attribute väli peab olema esindatud.',
'regex' => ':attribute vorming on vigane.',
'required' => ':attribute väli on nõutud.',
'required_if' => ':attribute väli on nõutud, kui :other on :value.',
'required_unless' => ':attribute väli on nõutud, välja arvatud, kui :other on :values.',
'required_with' => ':attribute väli on nõutud, kui :values on esindatud.',
'required_with_all' => ':attribute väli on nõutud, kui :values on esindatud.',
'required_without' => ':attribute väli on nõutud, kui :values ei ole esindatud.',
'required_without_all' => ':attribute väli on nõutud, kui ükski :values pole esindatud.',
'same' => ':attribute ja :other peavad sobima.',
'size' => [
'numeric' => ':attribute peab olema :size.',
'file' => ':attribute peab olema :size kilobaiti.',
'string' => ':attribute peab olema :size tähemärki.',
'array' => ':attribute peab sisaldama :size kirjet.',
],
'string' => ':attribute peab olema string.',
'timezone' => ':attribute peab olema kehtiv tsoon.',
'unique' => ':attribute on juba hõivatud.',
'uploaded' => ':attribute ei õnnestunud laadida.',
'url' => ':attribute vorming on vigane.',
/*
|--------------------------------------------------------------------------
| Custom Validation Language Lines
|--------------------------------------------------------------------------
|
| Here you may specify custom validation messages for attributes using the
| convention "attribute.rule" to name the lines. This makes it quick to
| specify a specific custom language line for a given attribute rule.
|
*/
'custom' => [
'attribute-name' => [
'rule-name' => 'kohandatud-sõnum',
],
'invalid_currency' => ':attribute kood on vigane.',
'invalid_amount' => 'Kogus :attribute on vigane.',
'invalid_extension' => 'Faililaiend on lubamatu.',
],
/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap attribute place-holders
| with something more reader friendly such as E-Mail Address instead
| of "email". This simply helps us make messages a little cleaner.
|
*/
'attributes' => [],
];

View File

@ -123,7 +123,7 @@ return [
'overdue' => 'Gecikmiş',
'partially' => 'Kısmen',
'partially_paid' => 'Kısmen Ödenmiş',
'export' => 'Dışa Aktar',
'export' => 'Dışarı Aktar',
'finish' => 'Bitti',
'wizard' => 'Sihirbaz',
'skip' => 'Geç',

View File

@ -2,8 +2,8 @@
return [
'import' => 'İçe Aktar',
'title' => ':type İçe Aktar',
'import' => 'İçeri Aktar',
'title' => ':type İçeri Aktar',
'message' => 'İzin verilen dosya türleri: XLS, XLSX. Lütfen, örnek dosyayı <a target="_blank" href=":link"><strong>indirin</strong></a>.',
];