diff --git a/modules/reports/src/Form/EndOfDayForm.php b/modules/reports/src/Form/EndOfDayForm.php
index 971c849..9767aba 100644
--- a/modules/reports/src/Form/EndOfDayForm.php
+++ b/modules/reports/src/Form/EndOfDayForm.php
@@ -270,7 +270,9 @@ class EndOfDayForm extends FormBase {
         if ($can_save || $can_update) {
           $form['results']['actions']['calculate'] = [
             '#type' => 'submit',
+            '#ajax' => $ajax,
             '#value' => $this->t('Calculate'),
+            '#validate' => ['::endOfDaySaveValidate'],
           ];
         }
 
@@ -319,7 +321,8 @@ class EndOfDayForm extends FormBase {
    * Submit callback for the end of day report form.
    */
   public function submitForm(array &$form, FormStateInterface $form_state) {
-
+    $this->endOfDaySaveSubmit($form, $form_state, FALSE);
+    $form_state->setRebuild();
   }
 
   /**
@@ -341,7 +344,7 @@ class EndOfDayForm extends FormBase {
   /**
    * Submit handler for the End of Day report "save" button.
    */
-  public function endOfDaySaveSubmit(array &$form, FormStateInterface $form_state) {
+  public function endOfDaySaveSubmit(array &$form, FormStateInterface $form_state, $close_register = TRUE) {
     $date = $form_state->getValue('date');
     // POS register.
     $register_id = $form_state->getValue('register_id');
@@ -393,7 +396,7 @@ class EndOfDayForm extends FormBase {
 
       // If we're making a new entry, that means we're closing our active
       // register.
-      if ($register->isOpen()) {
+      if ($close_register && $register->isOpen()) {
         $register->close();
         $register->save();
         drupal_set_message($this->t('Register @register has been closed.', [
