Browse Source

validation on get sellers for commissions

Jose Miguel Ledon Nieblas 8 years ago
parent
commit
397655d824

+ 14 - 16
app/controllers/commissions_controller.rb

@@ -99,25 +99,23 @@ class CommissionsController < ApplicationController
   def find_sellers_by_date
     initial_date = DateTime.parse(params[:initial_date])
     final_date = DateTime.parse(params[:final_date])
+    exists_any = Commission.where("pointsale_id = ? AND ((initial_date BETWEEN ? AND ?) OR (final_date BETWEEN ? AND ?))", params[:pointsale_id], initial_date, final_date, initial_date, final_date).any?
 
-    # exists_any = Commission.where(initial_date: initial_date..final_date, final_date: initial_date..final_date, pointsale: params[:pointsale_id]).any?
-    # exists_any = Commission.where("pointsale_id = ? AND ((initial_date BETWEEN ? AND ?) OR (final_date BETWEEN ? AND ?))", params[:pointsale_id], initial_date, final_date, initial_date, final_date).any?
-
-    # unless (exists_any)
-    ids_w_moves_in_period = Pointsale.find(params[:pointsale_id]).cash_registers_moves.where(move_type: '1', created_at: initial_date..final_date).pluck(:sale_id)
-    news_sales_in_period = Pointsale.find(params[:pointsale_id]).sales.activas.where(date_sale: initial_date..final_date).pluck(:id)
-    all_ids = (ids_w_moves_in_period + news_sales_in_period).uniq
-    if all_ids.present?
-      commissions_paid = SalesSellercommission.includes(:sale).where('sale_id IN (?) and sales.saletype = ?', all_ids, 1).pluck(:sale_id)
-      to_pay = all_ids - commissions_paid
-      sellers = Sale.where('sales.id IN (?)', to_pay).joins(:seller).distinct(:seller_id).select(:seller_id, :name)
+    if exists_any
+      render json: Array.new, status: :unprocessable_entity
     else
-      sellers = Array.new
+      ids_w_moves_in_period = Pointsale.find(params[:pointsale_id]).cash_registers_moves.where(move_type: '1', created_at: initial_date..final_date).pluck(:sale_id)
+      news_sales_in_period = Pointsale.find(params[:pointsale_id]).sales.activas.where(date_sale: initial_date..final_date).pluck(:id)
+      all_ids = (ids_w_moves_in_period + news_sales_in_period).uniq
+      if all_ids.present?
+        commissions_paid = SalesSellercommission.includes(:sale).where('sale_id IN (?) and sales.saletype = ?', all_ids, 1).pluck(:sale_id)
+        to_pay = all_ids - commissions_paid
+        sellers = Sale.where('sales.id IN (?)', to_pay).joins(:seller).distinct(:seller_id).select(:seller_id, :name)
+      else
+        sellers = Array.new
+      end
+      render json: sellers
     end
-    render json: sellers
-    # else
-    #   render json: 'no funka'
-    # end
   end
 
   private

+ 6 - 1
app/views/commissions/_sellers_for_commissions.html.erb

@@ -101,6 +101,7 @@
               url:  '/find_sellers_by_date/' + pointsale_id+ '/' + initial_date + '/' + final_date,
               dataType: 'json',
               success: function(data) {
+                  console.log(data);
                   $('#sellers_ids').html('');
                   for (var i = 0; i < data.length; i++) {
                     $('#sellers_ids').append($('<option>', {
@@ -111,7 +112,11 @@
                   $('#sellers_ids').multiselect('refresh');
                   App.unblockUI($("#sellers_div"));
                   $('#generate_button').prop('disabled', false);
-              }
+              },
+                error: function (err) {
+                    App.unblockUI($("#sellers_div"));
+                    toastr["error"]('Ya se generaron comisiones para el periodo seleccionado');
+                }
             });
 
         } else {