fix(money,orders): wage/gram-debt parity, atomic document confirm, expert edit, made-to-order, QA fixes

- Rial wage and gram-debt arithmetic matched to the reference; order corrections keep debt in sync
- Document confirm/un-confirm is a compare-and-swap (no double-applied cache under concurrency)
- Settlement document and expert inputs validated (400 instead of 500)
- Expert: edit / activate-deactivate own customers, adjust raw weights only
- Made-to-order flow in the app, PreOrder.quantity migration
- Order grids: customer column, sort keys; panel select search; pre-order quantity save
- Rebuilt release artifacts

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
mahmood
2026-10-29 18:09:02 +03:30
co-authored by Claude Sonnet 5.5
parent 959a272227
commit 6514b05d18
321 changed files with 6984 additions and 2170 deletions
+14
View File
@@ -85,6 +85,9 @@
{{ cart.total() }}
<i>گرم</i>
</span>
<span v-if="cart.totalRial() > 0" class="cart__totalRial">
+ اجرت ریالی {{ price(cart.totalRial()) }} <i>ریال</i>
</span>
</div>
<button type="button" class="cart__submit" @click="cartData.notify = true">ثبت نهایی سفارش</button>
</div>
@@ -146,6 +149,7 @@ import CartItem from '../components/product/CartItem.vue'
import { useCartStore, type CartItem as CartItemType } from '../stores/cartStore'
import { useSessionStore } from '../stores/session'
import { api } from '../api/client'
import { price } from '../utils/filters'
import { useCatalogStore } from '../stores/catalogStore'
import { KEYS, useQueryCache } from '../stores/queryCache'
@@ -441,6 +445,16 @@ onMounted(async () => {
font-weight: 800;
color: @ink;
}
.cart__totalRial {
font-size: 11.5px;
font-weight: 700;
color: @inkSoft;
}
.cart__totalRial i {
font-style: normal;
font-weight: 600;
color: @inkFaint;
}
.cart__totalValue i {
font-style: normal;
font-size: 11px;