diff --git a/kfet/static/kfet/js/kpsul.js b/kfet/static/kfet/js/kpsul.js
index 6441907a..64508ed6 100644
--- a/kfet/static/kfet/js/kpsul.js
+++ b/kfet/static/kfet/js/kpsul.js
@@ -298,6 +298,8 @@ class CheckoutManager {
read: template``,
statement_create: template``,
};
+
+ OperationWebSocket.add_handler(data => this.update_data(data));
}
update(id) {
@@ -326,6 +328,14 @@ class CheckoutManager {
}
+ update_data(ws_data) {
+ let data = ws_data["checkouts"].find(o => o.id === this.checkout.id);
+ if (!data)
+ return;
+ this.checkout.update(data);
+ this._update_on_success(data);
+ }
+
is_empty() { return this.checkout.is_empty(); }
display() {
diff --git a/kfet/views.py b/kfet/views.py
index 5856aae1..94f38ec9 100644
--- a/kfet/views.py
+++ b/kfet/views.py
@@ -765,7 +765,24 @@ class CheckoutStatementCreate(SuccessMessageMixin, CreateView):
form.instance.balance_new = getAmountBalance(form.cleaned_data)
form.instance.checkout_id = self.kwargs['pk_checkout']
form.instance.by = self.request.user.profile.account_kfet
- return super(CheckoutStatementCreate, self).form_valid(form)
+ res = super(CheckoutStatementCreate, self).form_valid(form)
+
+ ws_data = {
+ 'id': self.object.id,
+ 'at': self.object.at,
+ 'balance_new': self.object.balance_new,
+ 'balance_old': self.object.balance_old,
+ 'by': str(self.object.by),
+ }
+ consumers.KPsul.group_send('kfet.kpsul', {
+ 'checkouts': [{
+ 'id': self.object.checkout.id,
+ 'laststatement': ws_data,
+ }],
+ })
+
+ return res
+
class CheckoutStatementUpdate(SuccessMessageMixin, UpdateView):
model = CheckoutStatement