dansanti / l10n_cl_invoice

Sistema de apoyo a la facturación localización Chilena
https://globalresponse.cl
GNU Affero General Public License v3.0
1 stars 5 forks source link

Error de descuadre cuando se usan terminos de pago #12

Closed celm1990 closed 6 years ago

celm1990 commented 7 years ago

Al usar los terminos de pago por cuotas mensuales, digamos 1, 2, 3 meses, la deuda total de la factura se divide en coutas con X valor, al entrar en esta parte del codigo se evalua las lineas que son de la cuenta x cobrar/pagar y se va sumando credito - debito para obtener el total y comprarlo con el total de la factura para sacar el descuadre. Pero si son varias lineas xq se dividio en cuotass el algoritmo falla ya que solo me guardara el valor de la ultima linea entrando por un descuadre muy grande y sale error de recursividad. Para corregir eso, deberias cambiar las lineas esta linea de dif = total - line[2]['credit'] por dif += total - line[2]['credit'] y esta linea de dif = total - line[2]['debit'] por dif += total - line[2]['debit']

es decir usar un acumulador.

celm1990 commented 7 years ago

Este deberia ser el codigo correcto, acumular las lineas y restarlo del total y ahi comparar al diferencia:

    dif = 0
    total = self.amount_total
    for line in move_lines:
        if line[2]['name'] == '/' or line[2]['name'] == self.name:
            if line[2]['credit'] > 0:
                dif += line[2]['credit']
            else:
                dif += line[2]['debit']
    dif -= total
    if dif != 0:
celm1990 commented 6 years ago

Cierro en V11 se propondra PR en caso de seguir el problema