Pārlūkot izejas kodu

Merge branch 'chemi_branch' of SML/pos-boutique into master

Jose Miguel Ledon 7 gadi atpakaļ
vecāks
revīzija
525f5f2a27
1 mainītis faili ar 54 papildinājumiem un 108 dzēšanām
  1. 54 108
      app/controllers/cash_registers_moves_controller.rb

+ 54 - 108
app/controllers/cash_registers_moves_controller.rb

@@ -240,117 +240,63 @@ class CashRegistersMovesController < ApplicationController
 
   def save_when_is_credit(credit)
     abono = @cash_registers_move.quantity
-    recibido =  @cash_registers_move.received
-    change = recibido - abono
-    while abono > 0 do
-      credits_with_debt = Credit.where("customer_id = #{credit.customer_id} and rest > 0 and status = 0").order("sale_id ASC")
-      if credits_with_debt.first.present?
-        cash_registers_move_new = CashRegistersMove.new(cash_registers_move_params)
-        next_credit = credits_with_debt.first
-        @credit_payment = CreditPayment.new
-        @credit_payment.credit_id = next_credit.id
-        @credit_payment.customer_id = next_credit.customer_id
-        @credit_payment.pointsale_id = next_credit.pointsale_id
-        @credit_payment.status = :active
-        @credit_payment.date_payment = Date.today
-        @credit_payment.user_id = current_user.id
-        if abono < next_credit.rest #si se paga más del adeudo de este crédito
-          @credit_payment.quantity = abono
-          sale = Sale.find_by_id(next_credit.sale_id)
-          sale.update_attributes(:status => :parcial)
-          cash_registers_move_new.quantity = abono
-          cash_registers_move_new.received = abono + change
-          cash_registers_move_new.change = change
-          rest_aux = abono - next_credit.rest
-          next_credit.update_attributes(:rest => next_credit.rest - abono)
-        else
-          @credit_payment.quantity = next_credit.rest
-          sale = Sale.find_by_id(next_credit.sale_id)
-          sale.update_attributes(:status => :paid)
-          cash_registers_move_new.quantity = next_credit.rest
-          cash_registers_move_new.received = next_credit.rest
-          cash_registers_move_new.change = 0
-          rest_aux = abono - next_credit.rest
-          next_credit.update_attributes(:rest => 0)
-        end
-        if @credit_payment.save
-          cash_registers_move_new.open_cash_register_id = @sale.open_cash_register_id
-          cash_registers_move_new.credit_payment_id = @credit_payment.id
-          cash_registers_move_new.concept = :credit_payment
-          cash_registers_move_new.sale_id = next_credit.sale_id
-          cash_registers_move_new.open_cash_register_id = session[:open_cash_register_id]
-          cash_registers_move_new.move_type = :ingreso
-          cash_registers_move_new.save
+    abono_this_credit = abono >= credit.rest ? credit.rest : abono
+
+    # por si abonan dinero de mas, checar cuanto debe de ser de esta venta, y separarlo.
+    # @cash_registers_move.quantity = abono_this_credit
+    @credit_payment = CreditPayment.new
+    @credit_payment.credit_id = credit.id
+    @credit_payment.customer_id = credit.customer_id
+    @credit_payment.pointsale_id = credit.pointsale_id
+    @credit_payment.status = :active
+    @credit_payment.date_payment = Date.today
+    @credit_payment.user_id = current_user.id
+    # @credit_payment.quantity = abono_this_credit
+    @credit_payment.quantity = abono_this_credit
+
+    if @credit_payment.save
+      @cash_registers_move.credit_payment_id = @credit_payment.id
+      @cash_registers_move.concept = :credit_payment
+
+      if abono >= credit.rest # si se paga mas del adeudo de este credito
+        abono -= credit.rest
+
+        credit.update_attributes(rest: 0)
+        @sale.update_attributes(status: :paid)
+
+        # rubocop:disable Style/WhileUntilDo
+        while abono > 0 do
+          nextcredit = Credit.where("customer_id = #{credit.customer_id} and rest > 0").order("sale_id ASC")
+          # rubocop:disable Metrics/BlockNesting
+          if nextcredit.first.present?
+            if abono <= nextcredit.first.rest
+              next_credit_payment = CreditPayment.create(customer_id: credit.customer_id, credit_id: nextcredit.first.id, pointsale_id: credit.pointsale_id, quantity: abono, status: 0, date_payment: Date.today, user_id: current_user.id)
+              # next_credit_abono = @cash_registers_move.dup
+              # next_credit_abono.quantity = abono
+              # next_credit_abono.credit_payment_id = next_credit_payment.id
+              # next_credit_abono.save
+              nextcredit.first.update_attributes(rest: nextcredit.first.rest - abono)
+              sale = Sale.find_by_id(nextcredit.first.sale_id)
+              sale.update_attributes(status: :parcial)
+              abono -= nextcredit.first.rest
+            else
+              abono -= nextcredit.first.rest
+              nextcredit.first.update_attributes(rest: 0)
+              sale = Sale.find_by_id(nextcredit.sale_id)
+              sale.update_attributes(status: :paid)
+            end
+          else
+            abono = 0 # si ya no hay deuda
+          end
+          # rubocop:enable Metrics/BlockNesting
         end
-        abono = rest_aux
+        # rubocop:enable Style/WhileUntilDo
       else
-        abono = 0 #si ya no hay deuda
+        @cash_registers_move.quantity = abono
+        abono = credit.rest - abono
+        credit.update_attributes(rest: abono)
+        @sale.update_attributes(status: :parcial)
       end
     end
-    true
-    rescue
-      false
   end
-
-  # def save_when_is_credit(credit)
-  #   abono = @cash_registers_move.quantity
-  #   abono_this_credit = abono >= credit.rest ? credit.rest : abono
-
-  #   # por si abonan dinero de mas, checar cuanto debe de ser de esta venta, y separarlo.
-  #   # @cash_registers_move.quantity = abono_this_credit
-  #   @credit_payment = CreditPayment.new
-  #   @credit_payment.credit_id = credit.id
-  #   @credit_payment.customer_id = credit.customer_id
-  #   @credit_payment.pointsale_id = credit.pointsale_id
-  #   @credit_payment.status = :active
-  #   @credit_payment.date_payment = Date.today
-  #   @credit_payment.user_id = current_user.id
-  #   # @credit_payment.quantity = abono_this_credit
-  #   @credit_payment.quantity = abono_this_credit
-
-  #   if @credit_payment.save
-  #     @cash_registers_move.credit_payment_id = @credit_payment.id
-  #     @cash_registers_move.concept = :credit_payment
-
-  #     if abono >= credit.rest # si se paga mas del adeudo de este credito
-  #       abono -= credit.rest
-
-  #       credit.update_attributes(rest: 0)
-  #       @sale.update_attributes(status: :paid)
-
-  #       # rubocop:disable Style/WhileUntilDo
-  #       while abono > 0 do
-  #         nextcredit = Credit.where("customer_id = #{credit.customer_id} and rest > 0").order("sale_id ASC")
-  #         # rubocop:disable Metrics/BlockNesting
-  #         if nextcredit.first.present?
-  #           if abono <= nextcredit.first.rest
-  #             next_credit_payment = CreditPayment.create(customer_id: credit.customer_id, credit_id: nextcredit.first.id, pointsale_id: credit.pointsale_id, quantity: abono, status: 0, date_payment: Date.today, user_id: current_user.id)
-  #             # next_credit_abono = @cash_registers_move.dup
-  #             # next_credit_abono.quantity = abono
-  #             # next_credit_abono.credit_payment_id = next_credit_payment.id
-  #             # next_credit_abono.save
-  #             nextcredit.first.update_attributes(rest: nextcredit.first.rest - abono)
-  #             sale = Sale.find_by_id(nextcredit.first.sale_id)
-  #             sale.update_attributes(status: :parcial)
-  #             abono -= nextcredit.first.rest
-  #           else
-  #             abono -= nextcredit.first.rest
-  #             nextcredit.first.update_attributes(rest: 0)
-  #             sale = Sale.find_by_id(nextcredit.sale_id)
-  #             sale.update_attributes(status: :paid)
-  #           end
-  #         else
-  #           abono = 0 # si ya no hay deuda
-  #         end
-  #         # rubocop:enable Metrics/BlockNesting
-  #       end
-  #       # rubocop:enable Style/WhileUntilDo
-  #     else
-  #       @cash_registers_move.quantity = abono
-  #       abono = credit.rest - abono
-  #       credit.update_attributes(rest: abono)
-  #       @sale.update_attributes(status: :parcial)
-  #     end
-  #   end
-  # end
 end