_form.html.erb 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <%= form_for(@expense, html: { class: "form-horizontal" }) do |f| %>
  2. <div class="portlet-body form">
  3. <% if @expense.errors.any? %>
  4. <div class="alert alert-danger">
  5. <strong>Tiene <%= pluralize(@expense.errors.count, "error") %> no se puede guardar el egreso</strong><br>
  6. </div>
  7. <% end %>
  8. <div class="form-body">
  9. <div class="row">
  10. <div class="col-md-8">
  11. <%= hidden_field_tag :concept_purchase_payment, @concept_purchase_payment.id %>
  12. <div class="form-group">
  13. <%= f.label :expense_code, { class: "col-md-3 control-label" } do %> Código de egreso <span class="required">*</span> <% end %>
  14. <div class="col-md-4 input-group">
  15. <span class="input-group-addon"><i class="fa fa-barcode"></i></span>
  16. <%= f.text_field :expense_code, { class: "form-control", readonly: true } %>
  17. </div>
  18. </div>
  19. <% if current_user.usertype == "A" || current_user.usertype == "SS" %>
  20. <div class="form-group">
  21. <%= f.label :expense_date, "Fecha", { class: "col-md-3 control-label" } do %> Fecha <span class="required">*</span> <% end %>
  22. <div class="col-sm-4" style="padding-left:0px;padding-right:0px;">
  23. <div class='input-group date' id='datetimepicker1'>
  24. <span class="input-group-addon">
  25. <span class="glyphicon glyphicon-calendar"></span>
  26. </span>
  27. <%= f.text_field :expense_date, class: 'form-control' %>
  28. </div>
  29. </div>
  30. </div>
  31. <% else %>
  32. <div class="form-group">
  33. <%= f.label :open_cash_register_id, "Caja registradora", { class: "col-md-3 control-label" } do %> Caja registradora <span class="required">*</span> <% end %>
  34. <div class="input-group col-md-4 select2-bootstrap-prepend">
  35. <%= f.select :open_cash_register_id, @current_user.pointsale.open_cash_registers.abiertas.map{ |o| [o.cash_register.name, o.id] }, { prompt: "Seleccione" }, { class: 'form-control select2', disabled: @is_cashier } %>
  36. <% if current_user.usertype == 'C' %>
  37. <%= f.hidden_field :open_cash_register_id %>
  38. <% end %>
  39. </div>
  40. </div>
  41. <% end %>
  42. <div class="form-group">
  43. <%= f.label :expensesconcept_id, "Concepto", { class: "col-md-3 control-label" } do %>Concepto de egreso <span class="required">*</span> <% end %>
  44. <div class="input-group col-md-4 select2-bootstrap-prepend">
  45. <%= f.collection_select :expensesconcept_id, @expenses_concepts, :id, :name, { prompt: "Seleccione" }, { class: "form-control select2", style: "width: 100%" } %>
  46. </div>
  47. </div>
  48. <div class="form-group hidden" id="purchases_div">
  49. <%= f.label :purchases, "Concepto", { class: "col-md-3 control-label" } do %>Compras
  50. <span class="required">*</span>
  51. <% end %>
  52. <div class="input-group col-md-4 select2-bootstrap-prepend">
  53. <% if current_user.usertype == "A" || current_user.usertype == "SS" %>
  54. <%= select_tag "purchases", options_from_collection_for_select(Purchase.notpaid, :id, :code_with_price), include_blank: "Seleccione", class: "form-control select2" %>
  55. <% else %>
  56. <%= select_tag "purchases", options_from_collection_for_select(Purchase.notpaid.where(pointsale_id: current_user.pointsale_id), :id, :code_with_price), include_blank: "Seleccione", class: "form-control select2" %>
  57. <% end %>
  58. </div>
  59. </div>
  60. <div class="form-group">
  61. <%= f.label :quantity, { class: "col-md-3 control-label" } do %>Cantidad <span class="required">*</span>
  62. <% end %>
  63. <div class="col-md-4" style="padding-left:0px;padding-right:0px">
  64. <%= f.number_field :quantity, { class: "form-control" } %>
  65. </div>
  66. </div>
  67. <div class="form-group">
  68. <%= f.label :observations, "Observaciones", { class: "col-md-3 control-label" } %>
  69. <div class="col-md-9" style="padding-left:0px">
  70. <%= f.text_area :observations, { class: "form-control", rows: 5 } %>
  71. </div>
  72. </div>
  73. </div>
  74. </div>
  75. <div class="form-actions">
  76. <div class="row">
  77. <div class="col-md-9">
  78. <%= f.submit 'Guardar', { class: "btn green" } %>
  79. <%= link_to 'Cancelar', expenses_path, { class: "btn default" } %>
  80. </div>
  81. </div>
  82. </div>
  83. </div>
  84. <% end %>
  85. <script type="text/javascript">
  86. $(document).on('page:change', function() {
  87. App.init();
  88. generateExpenseCode();
  89. $("select.select2").select2({
  90. allowClear: true,
  91. placeholder: 'Todas'
  92. });
  93. $('#datetimepicker1').datetimepicker({
  94. icons: {
  95. date: "fa fa-calendar"
  96. },
  97. format: "DD/MM/YYYY",
  98. defaultDate: new Date()
  99. });
  100. });
  101. $('#expense_expensesconcept_id').on('change', function() {
  102. if( $('#concept_purchase_payment').val() == $(this).val() ) {
  103. $('#purchases_div').removeClass('hidden');
  104. $("#purchases").select2();
  105. } else {
  106. $('#purchases_div').addClass('hidden');
  107. $('#purchases').select2('val', null);
  108. }
  109. });
  110. $('#expense_open_cash_register_id').on('change', function() {
  111. generateExpenseCode();
  112. });
  113. function generateExpenseCode() {
  114. <% if current_user.usertype == "A" || current_user.usertype == "SS" %>
  115. $.ajax({
  116. type: "get",
  117. url: '/get_next_expense_code/0',
  118. dataType: 'text',
  119. success: function(data) {
  120. $('#expense_expense_code').val(data);
  121. },
  122. });
  123. <% else %>
  124. if($('#expense_open_cash_register_id').length > 0 && $('#expense_open_cash_register_id').val()) {
  125. $.ajax({
  126. type: "get",
  127. url: '/get_next_expense_code/' + $('#expense_open_cash_register_id').val(),
  128. dataType: 'text',
  129. success: function(data) {
  130. $('#expense_expense_code').val(data);
  131. },
  132. });
  133. }
  134. <% end %>
  135. }
  136. </script>