mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
Will make submit form possible.
This commit is contained in:
parent
7aef52870f
commit
91183a91b6
1336
public/v1/js/app.js
vendored
1336
public/v1/js/app.js
vendored
File diff suppressed because one or more lines are too long
@ -38,8 +38,6 @@
|
|||||||
v-model="group_title"
|
v-model="group_title"
|
||||||
title="Description of the split transaction" autocomplete="off"
|
title="Description of the split transaction" autocomplete="off"
|
||||||
placeholder="Description of the split transaction">
|
placeholder="Description of the split transaction">
|
||||||
|
|
||||||
|
|
||||||
<p class="help-block">
|
<p class="help-block">
|
||||||
If you create a split transaction, there must be a global description for all splits
|
If you create a split transaction, there must be a global description for all splits
|
||||||
of the transaction.
|
of the transaction.
|
||||||
@ -144,12 +142,8 @@
|
|||||||
<tags
|
<tags
|
||||||
v-model="transaction.tags"
|
v-model="transaction.tags"
|
||||||
></tags>
|
></tags>
|
||||||
<!-- custom string fields -->
|
<custom-transaction-fields
|
||||||
<custom-transaction-fields v-model="transaction.custom_fields"></custom-transaction-fields>
|
v-model="transaction.custom_fields"></custom-transaction-fields>
|
||||||
|
|
||||||
<!-- custom date fields -->
|
|
||||||
|
|
||||||
<!-- custom other fields -->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -157,15 +151,16 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<pre>{{ $data }}</pre>
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<p>
|
<p>
|
||||||
<button class="btn btn-primary" v-on:click="addTransaction">Add another split</button>
|
<button class="btn btn-primary" @click="addTransaction">Add another split</button>
|
||||||
<button class="btn btn-success">Submit</button>
|
<button class="btn btn-success" @click="submit">Submit</button>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<pre>{{ $data }}</pre>
|
||||||
</form>
|
</form>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -180,6 +175,101 @@
|
|||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
convertData: function () {
|
||||||
|
let data = {
|
||||||
|
'transactions': [],
|
||||||
|
};
|
||||||
|
let tagList = [];
|
||||||
|
let transactionType;
|
||||||
|
let firstSource;
|
||||||
|
let firstDestination;
|
||||||
|
if (this.transactions.length > 1) {
|
||||||
|
data.group_title = this.group_title;
|
||||||
|
}
|
||||||
|
|
||||||
|
// get transaction type from first transaction
|
||||||
|
transactionType = this.transactionType ? this.transactionType.toLowerCase() : 'invalid';
|
||||||
|
|
||||||
|
// if the transaction type is invalid, might just be that we can deduce it from
|
||||||
|
// the presence of a source or destination account
|
||||||
|
firstSource = this.transactions[0].source_account.type;
|
||||||
|
firstDestination = this.transactions[0].destination_account.type;
|
||||||
|
|
||||||
|
|
||||||
|
if ('invalid' === transactionType && ['Asset account', 'Loan', 'Debt', 'Mortgage'].includes(firstSource)) {
|
||||||
|
console.log('Assumed this is a withdrawal.');
|
||||||
|
transactionType = 'withdrawal';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('invalid' === transactionType && ['Asset account', 'Loan', 'Debt', 'Mortgage'].includes(firstDestination)) {
|
||||||
|
console.log('Assumed this is a deposit.');
|
||||||
|
transactionType = 'deposit';
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let key in this.transactions) {
|
||||||
|
if (this.transactions.hasOwnProperty(key) && /^0$|^[1-9]\d*$/.test(key) && key <= 4294967294) {
|
||||||
|
tagList = [];
|
||||||
|
|
||||||
|
// loop tags
|
||||||
|
for (let tagKey in this.transactions[key].tags) {
|
||||||
|
if (this.transactions[key].tags.hasOwnProperty(tagKey) && /^0$|^[1-9]\d*$/.test(tagKey) && key <= 4294967294) {
|
||||||
|
tagList.push(this.transactions[key].tags[tagKey].text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
data.transactions.push(
|
||||||
|
{
|
||||||
|
type: transactionType,
|
||||||
|
date: this.transactions[key].date,
|
||||||
|
|
||||||
|
amount: this.transactions[key].amount,
|
||||||
|
currency_id: this.transactions[key].currency_id,
|
||||||
|
|
||||||
|
foreign_amount: this.transactions[key].foreign_amount.amount,
|
||||||
|
foreign_currency_id: this.transactions[key].foreign_amount.currency_id,
|
||||||
|
|
||||||
|
description: this.transactions[key].description,
|
||||||
|
|
||||||
|
source_id: this.transactions[key].source_account.id,
|
||||||
|
source_name: this.transactions[key].source_account.name,
|
||||||
|
|
||||||
|
destination_id: this.transactions[key].destination_account.id,
|
||||||
|
destination_name: this.transactions[key].destination_account.name,
|
||||||
|
|
||||||
|
budget_id: this.transactions[key].budget,
|
||||||
|
category_name: this.transactions[key].category,
|
||||||
|
piggy_bank_id: this.transactions[key].piggy_bank,
|
||||||
|
tags: tagList,
|
||||||
|
|
||||||
|
interest_date: this.transactions[key].custom_fields.interest_date,
|
||||||
|
book_date: this.transactions[key].custom_fields.book_date,
|
||||||
|
process_date: this.transactions[key].custom_fields.process_date,
|
||||||
|
due_date: this.transactions[key].custom_fields.due_date,
|
||||||
|
payment_date: this.transactions[key].custom_fields.payment_date,
|
||||||
|
invoice_date: this.transactions[key].custom_fields.invoice_date,
|
||||||
|
internal_reference: this.transactions[key].custom_fields.internal_reference,
|
||||||
|
notes: this.transactions[key].custom_fields.notes
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(data);
|
||||||
|
|
||||||
|
return data;
|
||||||
|
},
|
||||||
|
submit(e) {
|
||||||
|
const uri = './api/v1/transactions?_token=' + document.head.querySelector('meta[name="csrf-token"]').content;
|
||||||
|
const data = this.convertData();
|
||||||
|
|
||||||
|
axios.post(uri, data)
|
||||||
|
.then(response => {
|
||||||
|
console.log(response);
|
||||||
|
});
|
||||||
|
if (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
|
},
|
||||||
addTransaction: function (e) {
|
addTransaction: function (e) {
|
||||||
this.transactions.push({
|
this.transactions.push({
|
||||||
description: "",
|
description: "",
|
||||||
|
Loading…
Reference in New Issue
Block a user