feat(#14): Wire manual buy/sell to the mammon acquire/consume endpoints

This commit is contained in:
Sirttas
2026-07-06 22:02:27 +02:00
parent 2a145bbbe7
commit d2a3a22ddf
11 changed files with 442 additions and 54 deletions
+31 -6
View File
@@ -2,7 +2,9 @@
import {Modal} from '@/components';
import {formatIsk} from '@/formaters';
import {MarketType, MarketTypeLabel} from '@/market';
import {ref} from 'vue';
import {Ledger, LedgerSelect} from '@/ledger';
import {computed, ref} from 'vue';
import {fromEveDatetimeInput, toEveDatetimeInput} from './AcquiredType';
import {useAcquiredTypesStore} from './acquisition';
const acquiredTypesStore = useAcquiredTypesStore();
@@ -12,11 +14,19 @@ const type = ref<MarketType>();
const suggestions = ref<Record<string, number>>({});
const price = ref(1000000);
const count = ref(1);
const date = ref('');
const contextLedgerId = ref<string>();
const ledger = ref<Ledger>();
const open = (t: MarketType, s?: Record<string, number> | number) => {
const ledgerId = computed(() => contextLedgerId.value ?? ledger.value?.ledgerId);
const open = (t: MarketType, s?: Record<string, number> | number, ledgerId?: string) => {
type.value = t;
count.value = 1;
date.value = toEveDatetimeInput(new Date());
contextLedgerId.value = ledgerId;
ledger.value = undefined;
if (typeof s === 'number') {
suggestions.value = {};
price.value = s;
@@ -29,7 +39,7 @@ const open = (t: MarketType, s?: Record<string, number> | number) => {
}
modalOpen.value = true;
}
const add = () => {
const add = async () => {
const id = type.value?.id;
if (!id) {
@@ -37,7 +47,14 @@ const add = () => {
return;
}
acquiredTypesStore.addAcquiredType(id, count.value, price.value);
const lid = ledgerId.value;
if (!lid) {
return;
}
await acquiredTypesStore.addAcquiredType(id, count.value, price.value, lid, fromEveDatetimeInput(date.value));
await acquiredTypesStore.processNewActivities();
modalOpen.value = false;
}
@@ -61,7 +78,15 @@ defineExpose({ open });
<span>Count: </span>
<input class="ms-2" type="number" min="0" step="1" v-model="count" @keyup.enter="add" />
</div>
<button class="mb-auto" @click="add">Add</button>
<div class="flex me-2 mb-auto">
<span>Eve Time: </span>
<input class="ms-2" type="datetime-local" v-model="date" />
</div>
<div v-if="!contextLedgerId" class="flex me-2 mb-auto">
<span>Ledger: </span>
<LedgerSelect class="ms-2" v-model="ledger" />
</div>
<button class="mb-auto" :disabled="!ledgerId" @click="add">Add</button>
</div>
</div>
</Modal>