def editarAnexoTransaccional(anexo, sustento, tipo_comprobante, iva_bien, iva_serv, iva_100): anexo = RegistroAnexoDocumento.objects.get(pk=anexo) anexo.sustento = SustentoTributario.objects.get(pk=sustento) anexo.tipo_comprobante = TipoComprobante.objects.get(pk=tipo_comprobante) #obtener solo detalles de iva detalle = DetalleRetencion.objects.filter(retencion_id=anexo.retencion_documento.pk, es_renta=False) de = buscarDetalle(detalle, "iva_bie") if iva_bien == 0 and de: de.delete() elif iva_bien == 0 and de == False: pass elif iva_bien != 0 and de: pass elif iva_bien != 0 and de == False: det = DetalleRetencion() det.base_imponible = iva_bien det.es_iva = "iva_bie" det.es_renta = False det.valor_retenido = iva_bien det.retencion = Retencion.objects.get(pk=anexo.retencion_documento.pk) det.save() de = buscarDetalle(detalle, "iva_serv") if iva_serv == 0 and de: de.delete() elif iva_serv == 0 and de == False: pass elif iva_serv != 0 and de: pass elif iva_serv != 0 and de == False: det = DetalleRetencion() det.base_imponible = iva_serv det.es_iva = "iva_serv" det.es_renta = False det.valor_retenido = iva_serv det.retencion = Retencion.objects.get(pk=anexo.retencion_documento.pk) det.save() de = buscarDetalle(detalle, "iva_100") if iva_100 == 0 and de: de.delete() elif iva_100 == 0 and de == False: pass elif iva_100 != 0 and de: pass elif iva_100 != 0 and de == False: det = DetalleRetencion() det.base_imponible = iva_100 det.es_iva = "iva_100" det.es_renta = False det.valor_retenido = iva_100 det.retencion = Retencion.objects.get(pk=anexo.retencion_documento.pk) det.save() anexo.save(update_fields=['sustento','tipo_comprobante'])
def grabarDetalleRetencion(retencion, iva_bie=0, iva_serv=0, iva_100=0, imp_renta=0, concepto_retencion=None): if iva_100!=0: d = DetalleRetencion() d.es_renta = False d.es_iva = 'iva_100' d.valor_retenido = iva_100 d.base_imponible = iva_100 d.retencion = retencion d.save() else: if iva_serv!=0: d = DetalleRetencion() d.es_renta = False d.es_iva = 'iva_serv' d.valor_retenido = iva_serv d.base_imponible = iva_serv d.retencion = retencion d.save() if iva_bie!=0: d = DetalleRetencion() d.es_renta = False d.es_iva = 'iva_bie' d.valor_retenido = iva_bie d.base_imponible = iva_bie d.retencion = retencion d.save() if imp_renta!=0: d = DetalleRetencion() d.es_renta = True d.es_iva = None d.valor_retenido = imp_renta d.base_imponible = imp_renta d.concepto_retencion = concepto_retencion d.retencion = retencion d.save() return d.pk