Explorar o código

Calculate payment change in sale

Jacqueline Maldonado %!s(int64=7) %!d(string=hai) anos
pai
achega
9332042a8a

+ 20 - 21
app/views/cash_registers_moves/_cash_registers_move.html.erb

@@ -1,23 +1,22 @@
-< % if @cash_registers_move.sale.cash? || @cash_registers_move.sale.reserved?%>
-
-	<tr id="cash_move_<%= @cash_registers_move.id %>">
-	  	<% if (@cash_registers_move.sale.present? && (@cash_registers_move.sale.cash? || @cash_registers_move.sale.reserved?)) || @cash_registers_move.products_return.present? %>
-		  	<td>
-		  		<%= number_to_currency(@cash_registers_move.received, precision: 2) %>
-		  	</td>
-	  	<% end %>
-	  <td>
-	  	<%= hidden_field_tag :amount, @cash_registers_move.quantity %>
-	  	<%= number_to_currency(@cash_registers_move.quantity, precision: 2) %>
-	  </td>
-	  <td>
-	  	<%= hidden_field_tag :payment_type, @cash_registers_move.payment_method.id %>
-	  	<%= @cash_registers_move.payment_method.method %>
-	  </td>
-	  <td> <%= @cash_registers_move.cardnumber %> </td>
-	  <td style="width: 5%" class="text-center">
-	    <button type="button" class="btn btn-icon-only btn-danger" onclick="deleteCashMove($(this))"><i class="fa fa-trash-o"></i></button>
-	  </td>
-	</tr>
+<tr id="cash_move_<%= @cash_registers_move.id %>">
+  	<% if (@cash_registers_move.sale.present? && (@cash_registers_move.sale.cash? || @cash_registers_move.sale.reserved?)) || @cash_registers_move.products_return.present? %>
+	  	<td>
+	  		<%= number_to_currency(@cash_registers_move.received, precision: 2) %>
+	  		<%= hidden_field_tag :received, @cash_registers_move.received %>
+	  	</td>
+  	<% end %>
+  <td>
+  	<%= hidden_field_tag :amount, @cash_registers_move.quantity %>
+  	<%= number_to_currency(@cash_registers_move.quantity, precision: 2) %>
+  </td>
+  <td>
+  	<%= hidden_field_tag :payment_type, @cash_registers_move.payment_method.id %>
+  	<%= @cash_registers_move.payment_method.method %>
+  </td>
+  <td> <%= @cash_registers_move.cardnumber %> </td>
+  <td style="width: 5%" class="text-center">
+    <button type="button" class="btn btn-icon-only btn-danger" onclick="deleteCashMove($(this))"><i class="fa fa-trash-o"></i></button>
+  </td>
+</tr>
 
 

+ 11 - 10
app/views/cash_registers_moves/_form.html.erb

@@ -227,22 +227,23 @@
 
   function calculateChange() {
     var total = parseFloat($('#sale_total').val());
-    var received_cash  = parseFloat($('#cash_registers_move_received').val());
+    var received_cash = parseFloat($('#cash_registers_move_received').val());
     totalInTable = 0;
-
+    var cash = 0;
+    var card = 0;
     $('#payments_table tbody tr').each(function() {
+      totalInTable += parseFloat($(this).find("td:nth-child(2) input").val());
       if ($(this).find("td:nth-child(3) input").val() == <%= @cash_id %>) {
-        totalInTable += parseFloat($(this).find("td:nth-child(2) input").val());
+        cash += parseFloat($(this).find("td:nth-child(1) input").val());
+      } else {
+        card += parseFloat($(this).find("td:nth-child(2) input").val());
       }
     });
-
-    var change = received_cash - totalInTable;
-    if (change > 0 && totalInTable > 0) {
-      // $('#display_change').html(formatter.format(change));
-      $('#display_change').html(accounting.formatMoney(change));
-    } else {
-      // $('#display_change').html(formatter.format(0));
+    rest = totalInTable - card;
+    if(cash + card == total || cash - rest <= 0 ){
       $('#display_change').html(accounting.formatMoney(0));
+    } else {
+      $('#display_change').html(accounting.formatMoney(cash - rest));
     }
   }
 </script>