_abonoform.html.erb 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. <%= form_for(@cash_registers_move, remote: true, html: { class: "form-horizontal", id: "cash_register_move_form" }) do |f| %>
  2. <%= f.hidden_field(:open_cash_register_id, value: @sale.open_cash_register_id) %>
  3. <%= f.hidden_field(:sale_id, value: @sale.id) %>
  4. <div class="portlet-body form">
  5. <div class="alert alert-danger hidden" id="error_explanation_move"></div>
  6. <div class="row">
  7. <!-- div para mostrar total -->
  8. <div class="col-md-12">
  9. <h3> <%= @sale.customer.nick_name %> </h3>
  10. <div class="note note-success row" style="padding: 0px;">
  11. <div class="col-md-12">
  12. <div class="col-md-4" style="padding-left:0px"><h4 class="block">Adeudo del cliente:</h4></div>
  13. <%= hidden_field_tag 'sale_total', @credito %>
  14. <div class="col-md-8 text-center" style="margin-top:10px;padding-right: 0px;">
  15. <h3 class="pull-right"><%= number_to_currency(@credito, precision: 2) %></h3>
  16. </div>
  17. </div>
  18. </div>
  19. </div>
  20. <div class="col-md-12">
  21. <h4 class="form-section" style="margin-top:15px;margin-bottom:15px">Nuevo abono</h4>
  22. <!-- div fecha -->
  23. <div class="col-md-12" style="margin-bottom:15px;padding-right:0px">
  24. <div class="col-md-4 pull-right" style="padding-left:0px;padding-right:0px;">
  25. <div class='input-group date' id='datetimepicker2'>
  26. <input type='text' class="form-control" disabled/>
  27. <span class="input-group-addon">
  28. <span class="glyphicon glyphicon-calendar"></span>
  29. </span>
  30. </div>
  31. </div>
  32. </div>
  33. <div class="col-md-12" style="padding:0px">
  34. <!-- recibido -->
  35. <div class="col-md-4">
  36. <div class="form-group">
  37. <span class="help-block">Monto recibido </span>
  38. <div class="input-group col-md-11">
  39. <span class="input-group-addon"> $ </span>
  40. <%= f.number_field :received, { class: "form-control mask_decimal first_input", oninput: 'lock_button()' } %>
  41. </div>
  42. </div>
  43. </div>
  44. <!-- cantidad -->
  45. <div class="col-md-4">
  46. <div class="form-group">
  47. <span class="help-block">Monto a ABONAR </span>
  48. <div class="input-group col-md-11">
  49. <span class="input-group-addon"> $ </span>
  50. <%= f.number_field :quantity, { class: "form-control mask_decimal", oninput: 'lock_button()' } %>
  51. </div>
  52. </div>
  53. </div>
  54. <!-- boton agregar -->
  55. <div class="col-md-2" style="padding-right:0px; margin-top:30px">
  56. <button type="button" class="btn green pull-right" onclick="unlockSubmit()">Agregar</button>
  57. </div>
  58. </div>
  59. <div class="col-md-4">
  60. <div class="form-group">
  61. <span class="help-block">Forma de pago </span>
  62. <div class="input-group col-md-12">
  63. <%= f.select :payment_method_id, PaymentMethod.vigentes.map { |c| [c.method, c.id] }, { include_blank: "Seleccione", selected: @cash_id }, { class: "form-control" } %>
  64. </div>
  65. </div>
  66. </div>
  67. <!-- datos de la tarjeta cuando aplica -->
  68. <div class="col-md-6" id="card_info" style="display: none;margin-top: 25px">
  69. <div class="form-group">
  70. <%= f.label :cardnumber, { class: "col-md-4 control-label" } do %> Tarjeta: <span class="required">*</span><% end %>
  71. <div class="col-md-8">
  72. <%= f.text_field :cardnumber, { class: "form-control input-xsmall", maxlength: 4 } %>
  73. <span class="help-block"><small>Últimos 4 dígitos de la tarjeta.</small></span>
  74. </div>
  75. </div>
  76. </div>
  77. <!-- datos del cheque cuando aplica -->
  78. <div class="col-md-12" id="check_info" style="display: none;padding-left: 10px">
  79. <div class="form-group">
  80. <%= f.label :bank_name, { class: "col-md-2 control-label", style: "padding-right: 5px" } do %> Nombre del banco: <span class="required">*</span><% end %>
  81. <%= f.text_field :bank_name, { class: "col-md-8 form-control", style: "width: 25%" } %>
  82. <%= f.label :check_number, { class: "col-md-2 control-label", style: "padding-right: 5px" } do %> Folio de cheque: <span class="required">*</span><% end %>
  83. <%= f.text_field :check_number, { class: "col-md-8 form-control", style: "width: 25%" } %>
  84. </div>
  85. <div class="form-group">
  86. <%= f.label :customer_account, { class: "col-md-2 control-label", style: "padding-right: 5px" } do %> Número de cuenta: <span class="required">*</span><% end %>
  87. <%= f.text_field :customer_account, { class: "col-md-8 form-control input-medium", style: "width: 25%" } %>
  88. </div>
  89. </div>
  90. <!-- datos de la transferencia cuando aplica -->
  91. <div class="col-md-6" id="transfer_info" style="display: none;padding-left: 10px;margin-top: 25px">
  92. <div class="form-group">
  93. <%= f.label :customer_code, { class: "col-md-5 control-label" } do %> Referencia: <span class="required">*</span><% end %>
  94. <%= f.text_field :customer_code, class: "col-md-7 form-control input-small" %>
  95. </div>
  96. </div>
  97. </div>
  98. <!-- div para mostrar cambio -->
  99. <div class="col-md-offset-6 col-md-6">
  100. <div class="note note-success row" style="padding: 0px;">
  101. <div class="col-md-12">
  102. <div class="col-md-4" style="padding-left:0px"><h4 class="block pull-left">Cambio:</h4></div>
  103. <div class="col-md-8 text-center" style="margin-top:10px;padding-right: 0px;">
  104. <h4 id="display_change" class="pull-right"></h4>
  105. </div>
  106. </div>
  107. </div>
  108. </div>
  109. <div class="col-md-12">
  110. <button type="button" class="btn green btn-block" disabled id="save_move" onclick="submitForm()">Abonar a crédito</button>
  111. </div>
  112. </div>
  113. </div>
  114. <% end %>
  115. <script type="text/javascript">
  116. var totalInTable = 0;
  117. var timeout = null;
  118. $('#datetimepicker2').datetimepicker({
  119. icons: {
  120. date: "fa fa-calendar"
  121. },
  122. format: "DD/MM/YYYY",
  123. defaultDate: new Date()
  124. });
  125. $('form#cash_register_move_form').bind('ajax:complete', function() {
  126. $('#save_move').attr('disabled', false);
  127. });
  128. $('#dialog').removeClass('bs-modal-lg');
  129. $('#dialog .modal-dialog').removeClass('modal-lg');
  130. $('#cash_registers_move_payment_method_id').on('change', function() {
  131. var method = parseInt($(this).val());
  132. $('#display_change').html(accounting.formatMoney(0));
  133. $('#save_move').attr('disabled', true);
  134. switch(method){
  135. case 1:
  136. // tarjeta de debito
  137. $('#card_info').fadeIn();
  138. $('#check_info').fadeOut();
  139. $('#transfer_info').fadeOut();
  140. $("#cash_registers_move_bank_name").val("");
  141. $("#cash_registers_move_check_number").val("");
  142. $("#cash_registers_move_customer_account").val("");
  143. break;
  144. case 2:
  145. // efectivo
  146. $('#card_info').fadeOut();
  147. $('#check_info').fadeOut();
  148. $('#transfer_info').fadeOut();
  149. $("#cash_registers_move_cardnumber").val("");
  150. $("#cash_registers_move_bank_name").val("");
  151. $("#cash_registers_move_check_number").val("");
  152. $("#cash_registers_move_customer_account").val("");
  153. break;
  154. case 3:
  155. // transferencia bancaria
  156. $('#transfer_info').fadeIn();
  157. $('#card_info').fadeOut();
  158. $('#check_info').fadeOut();
  159. $("#cash_registers_move_cardnumber").val("");
  160. $("#cash_registers_move_check_number").val("");
  161. $("#cash_registers_move_customer_account").val("");
  162. break;
  163. case 5:
  164. // cheque
  165. $('#check_info').fadeIn();
  166. $('#card_info').fadeOut();
  167. $('#transfer_info').fadeOut();
  168. $("#cash_registers_move_cardnumber").val("");
  169. break;
  170. case 4:
  171. // tarjeta de credito
  172. $('#card_info').fadeIn();
  173. $('#check_info').fadeOut();
  174. $('#transfer_info').fadeOut();
  175. $("#cash_registers_move_bank_name").val("");
  176. $("#cash_registers_move_check_number").val("");
  177. $("#cash_registers_move_customer_account").val("");
  178. break;
  179. }
  180. });
  181. function unlockSubmit() {
  182. var method = $('#cash_registers_move_payment_method_id').val();
  183. var received = $('#cash_registers_move_received').val();
  184. var quantity = $('#cash_registers_move_quantity').val();
  185. var change = 0;
  186. var isReady = false;
  187. if (method == <%= @cash_id %>) {
  188. if(received && quantity && (quantity <= <%= @credito %> ) ) {
  189. change = received - quantity;
  190. isReady = true;
  191. } else {
  192. toastr["error"]("Hay datos que falta ingresar o la cantidad es incorrecta.");
  193. }
  194. } else if (quantity) {
  195. isReady = true;
  196. }
  197. // $('#display_change').html(formatter.format(change));
  198. $('#display_change').html(accounting.formatMoney(change));
  199. if (isReady) {
  200. $("#save_move").attr('disabled', false);
  201. } else {
  202. $("#save_move").attr('disabled', true);
  203. }
  204. }
  205. function submitForm() {
  206. $('#save_move').attr('disabled', true);
  207. $('#cash_register_move_form').submit();
  208. }
  209. function lock_button() {
  210. $("#save_move").attr('disabled', true);
  211. }
  212. </script>