Skip to content

Commit

Permalink
close #2213 Fixed: Document add new tax not calculate totals
Browse files Browse the repository at this point in the history
  • Loading branch information
cuneytsenturk committed Aug 1, 2021
1 parent 31f2732 commit cef1ee1
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 67 deletions.
136 changes: 71 additions & 65 deletions resources/assets/js/views/common/documents.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,78 +26,80 @@ const app = new Vue({
],

data: function () {
return {
form: new Form('document'),
bulk_action: new BulkAction('documents'),
totals: {
sub: 0,
item_discount: '',
discount: '',
discount_text: false,
taxes: [],
total: 0
},
transaction: [],
edit: {
status: false,
currency: false,
items: 0,
},
colspan: 6,
discount: false,
tax: false,
discounts: [],
tax_id: [],

items: [],
taxes: [],
page_loaded: false,
currencies: [],
min_due_date: false,
currency_symbol: {
"name":"US Dollar",
"code":"USD",
"rate":1,
"precision":2,
"symbol":"$",
"symbol_first":1,
"decimal_mark":".",
"thousands_separator":","
},
dropdown_visible: true
}
return {
form: new Form('document'),
bulk_action: new BulkAction('documents'),
totals: {
sub: 0,
item_discount: '',
discount: '',
discount_text: false,
taxes: [],
total: 0
},
transaction: [],
edit: {
status: false,
currency: false,
items: 0,
},
colspan: 6,
discount: false,
tax: false,
discounts: [],
tax_id: [],

items: [],
taxes: [],
page_loaded: false,
currencies: [],
min_due_date: false,
currency_symbol: {
"name":"US Dollar",
"code":"USD",
"rate":1,
"precision":2,
"symbol":"$",
"symbol_first":1,
"decimal_mark":".",
"thousands_separator":","
},
dropdown_visible: true,
dynamic_taxes: [],
}
},

mounted() {
if ((document.getElementById('items') != null) && (document.getElementById('items').rows)) {
this.colspan = document.getElementById("items").rows[0].cells.length - 1;
}

if (!this.edit.status) {
this.dropdown_visible = false;
}

this.currency_symbol.rate = this.form.currency_rate;

if (company_currency_code) {
let default_currency_symbol = null;

for (let symbol of this.currencies) {
if(symbol.code == company_currency_code) {
default_currency_symbol = symbol.symbol;
}
}
this.currency_symbol.symbol = default_currency_symbol;
}

if ((document.getElementById('items') != null) && (document.getElementById('items').rows)) {
this.colspan = document.getElementById("items").rows[0].cells.length - 1;
}

if (!this.edit.status) {
this.dropdown_visible = false;
}

this.currency_symbol.rate = this.form.currency_rate;

if (company_currency_code) {
let default_currency_symbol = null;

for (let symbol of this.currencies) {
if(symbol.code == company_currency_code) {
default_currency_symbol = symbol.symbol;
}
}

this.currency_symbol.symbol = default_currency_symbol;
}

},

methods: {
onCalculateTotal() {
let global_discount = parseFloat(this.form.discount);
let discount_total = 0;
let line_item_discount_total = 0;
let taxes = document_taxes;
let taxes = this.dynamic_taxes;
let sub_total = 0;
let totals_taxes = [];
let grand_total = 0;
Expand Down Expand Up @@ -253,7 +255,7 @@ const app = new Vue({

this.form.items.forEach(function(form_item, form_index) {
let item = this.items[form_index];

for (const [key, value] of Object.entries(item)) {
if (key == 'add_tax' || key == 'tax_ids' || key == 'add_discount') {
continue
Expand Down Expand Up @@ -349,7 +351,7 @@ const app = new Vue({

let selected_tax;

document_taxes.forEach(function(tax) {
this.dynamic_taxes.forEach(function(tax) {
if (tax.id == this.tax_id) {
selected_tax = tax;
}
Expand Down Expand Up @@ -682,7 +684,7 @@ const app = new Vue({

this.page_loaded = true;

if (document_currencies) {
if (typeof document_currencies !== 'undefined' && document_currencies) {
this.currencies = document_currencies;

this.currencies.forEach(function (currency, index) {
Expand All @@ -693,5 +695,9 @@ const app = new Vue({
}
}, this);
}

if (typeof document_taxes !== 'undefined' && document_taxes) {
this.dynamic_taxes = document_taxes;
}
}
});
6 changes: 4 additions & 2 deletions resources/views/components/documents/form/line-item.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -215,11 +215,12 @@ class="mb-0 select-tax"
:placeholder="'{{ trans('general.form.select.field', ['field' => trans_choice('general.taxes', 1)]) }}'"
:name="'items.' + index + '.taxes.' + row_tax_index"
:options="{{ json_encode($taxes->pluck('title', 'id')) }}"
:dynamic-options="dynamic_taxes"
:disabled-options="form.items[index].tax_ids"
:value="row_tax.id"
@interface="row_tax.id = $event"
@change="onCalculateTotal()"
@new="taxes.push($event)"
@new="dynamic_taxes.push($event)"
:form-error="form.errors.get('items.' + index + '.taxes')"
:no-data-text="'{{ trans('general.no_data') }}'"
:no-matching-data-text="'{{ trans('general.no_matching_data') }}'"
Expand Down Expand Up @@ -254,6 +255,7 @@ class="mb-0 select-tax"
:placeholder="'{{ trans('general.form.select.field', ['field' => trans_choice('general.taxes', 1)]) }}'"
:name="'items.' + index + '.taxes.999'"
:options="{{ json_encode($taxes->pluck('title', 'id')) }}"
:dynamic-options="dynamic_taxes"
:disabled-options="form.items[index].tax_ids"
:value="tax_id"
:add-new="{{ json_encode([
Expand All @@ -279,7 +281,7 @@ class="mb-0 select-tax"
])}}"
@interface="tax_id = $event"
@visible-change="onSelectedTax(index)"
@new="taxes.push($event)"
@new="dynamic_taxes.push($event)"
:form-error="form.errors.get('items.' + index + '.taxes')"
:no-data-text="'{{ trans('general.no_data') }}'"
:no-matching-data-text="'{{ trans('general.no_matching_data') }}'"
Expand Down

0 comments on commit cef1ee1

Please sign in to comment.