Order Screen is now Reactive
This commit is contained in:
@@ -434,35 +434,27 @@ const voidLastItem = () => {
|
|||||||
decrementItemQty(OrderScreen.order_items.last())
|
decrementItemQty(OrderScreen.order_items.last())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getSelectedTotals = () =>
|
||||||
|
OrderScreen.selected_item_ids
|
||||||
|
.map(selectedId => OrderScreen.order_items.find(orderItem => orderItem.id == selectedId))
|
||||||
|
.reduce((resultSoFar, currentOrderItem) => {
|
||||||
|
return resultSoFar.add(currentOrderItem.item.price1 * currentOrderItem.qty)
|
||||||
|
}, money(0))
|
||||||
|
|
||||||
|
const getTotals = () =>
|
||||||
|
OrderScreen.order_items
|
||||||
|
.reduce((resultSoFar, currentOrderItem) => {
|
||||||
|
return resultSoFar.add(currentOrderItem.item.price1 * currentOrderItem.qty)
|
||||||
|
}, money(0))
|
||||||
|
|
||||||
const updateOrderBoxTotals = () => {
|
const updateOrderBoxTotals = () => {
|
||||||
const allRows = $('.orderBoxTable tbody tr')
|
const completeTotal = lang('totalPrice', getTotals().format())
|
||||||
const selectedRows = $('.orderBoxTable tbody tr.selected')
|
const selectedTotal = lang('selectedPrice', getSelectedTotals().format())
|
||||||
const completeTotal = lang('totalPrice', getTotalOfRows(allRows))
|
|
||||||
const selectedTotal = lang('selectedPrice', getTotalOfRows(selectedRows))
|
|
||||||
|
|
||||||
$('.orderBoxTotal').text(completeTotal)
|
$('.orderBoxTotal').text(completeTotal)
|
||||||
$('.orderBoxSelectedTotal').text(selectedTotal)
|
$('.orderBoxSelectedTotal').text(selectedTotal)
|
||||||
}
|
}
|
||||||
|
|
||||||
const getTotalOfRows = (rows: JQuery) => {
|
|
||||||
return money(rows
|
|
||||||
.find('td.totalPriceCell')
|
|
||||||
.get()
|
|
||||||
.map(cell => Number(cell.innerText))
|
|
||||||
.filter(number => !isNaN(number))
|
|
||||||
.reduce( (total, number) => total + number , 0), false)
|
|
||||||
.format()
|
|
||||||
}
|
|
||||||
|
|
||||||
const getQty = (row: JQuery) => Number(row.getColumnValue(lang('qty_header')))
|
|
||||||
const getUnitPrice = (row: JQuery) => moneyFromString(row.getColumnValue(lang('price_header')))
|
|
||||||
|
|
||||||
const calculateRowTotal = (row: JQuery) => {
|
|
||||||
let price = getUnitPrice(row)
|
|
||||||
let qty = getQty(row)
|
|
||||||
row.setColumnValue(lang('total_price_header'), price.multiply(qty))
|
|
||||||
}
|
|
||||||
|
|
||||||
const scrollToElement = (JQueryElement: JQuery) => {
|
const scrollToElement = (JQueryElement: JQuery) => {
|
||||||
const element = JQueryElement.get()[0]
|
const element = JQueryElement.get()[0]
|
||||||
const container = JQueryElement.closest('.orderBox').get()[0]
|
const container = JQueryElement.closest('.orderBox').get()[0]
|
||||||
|
|||||||
Reference in New Issue
Block a user