Example #1
0
def nueva_retencion_view(request):
    if request.method=="POST":
        retencion = Retencion.objects.get(pk=request.POST['pk_retencion'])
        concep_re = ConceptoRetencion.objects.get(pk=request.POST['concepto_pk'])
        imp_renta = request.POST['monto']
        base_imponible = request.POST['base']
        pk=grabarDetalleRetencion(retencion=retencion, imp_renta=imp_renta, concepto_retencion=concep_re)
        ctx={"mesanje":"se guardo con exito","pk":pk}
        return HttpResponse(json.dumps(ctx), content_type="application/json")
    else:
        form = RetencionForm()
        concepto = ConceptoRetencion.objects.all()
        ctx={"form":form,"concepto":concepto}
        return render_to_response("contabilidad/nueva_retencion.html",ctx,context_instance=RequestContext(request))
Example #2
0
def guardar_anexo_doc(request):
    if request.method=="POST":
        print 'llega al post'
        pk_doc = request.POST['pk_doc']
        print pk_doc
        ra = RegistroAnexoDocumento()
        
        doc = Documento.objects.get(pk=pk_doc)
        print 'obtiene doc'
        ra.documento = doc
        
        ra.sustento = SustentoTributario.objects.get(pk=request.POST['sustento_tributario'])
        print 'sustento'
        ra.tipo_comprobante = TipoComprobante.objects.get(pk=request.POST['tipo_comprobante'])
        print 'comprobante'
        ra.fecha_emision = request.POST['fecha_emision']
        print 'fecha emision'
        ra.fecha_registro = request.POST['fecha_registro']
        print 'fecha registro'
        ra.tipo_pago = request.POST['pago']
        print 'tipo pago'
        if request.POST['comprobante_retencion'] == 'on':
            print "guardando el comprobante de retencion"
            r = Retencion()
            r.codigo = randint(0, 9999999)
            r.fecha = request.POST['fecha_registro']
            r.ruc = request.POST['ruc']
            r.establecimiento = 1
            r.emision = 1
            r.secuencial = 1
            r.contabilizado = False
            r.beneficiario = Proveedor.objects.get(pk=request.POST['pk_benef'])
            try:
                r.save()
                print 'al guardar retencion'
                ra.retencion_documento = r
                ra.save()
                print 'al guardar registro anexo'
                try:
                    if request.POST['retencion_bien']:
                        valor1 = request.POST['retencion_bien']
                        grabarDetalleRetencion(retencion=r, iva_bie=valor1)
                        #en caso de que ocurra algun error, debemos 
                except MultiValueDictKeyError:
                    print "falla en detalle bien"
                    pass
                try:
                    if request.POST['retencion_servicio']:
                        valor2 = request.POST['retencion_servicio']
                        grabarDetalleRetencion(retencion=r, iva_serv=valor2)
                except MultiValueDictKeyError:
                    print "falla en detalle serv"
                    pass
                try:
                    if request.POST['retencion_cien']:
                        valor3 = request.POST['retencion_cien']
                        grabarDetalleRetencion(retencion=r, iva_100=valor3)
                except MultiValueDictKeyError:
                    print "falla en detalle cien"
                    pass
                doc.tiene_anexo = True
                doc.save(update_fields=['tiene_anexo'])
                ctx = {"success":"se ha guardado doc de retencion y anexo","pk_retencion":r.pk}
                return HttpResponse(json.dumps(ctx), content_type="application/json")
            except Exception:
                r.delete()
                ctx = {"fail":"falla al guardar registro anexo o documento de retencion, posible falla de one to one field"}
                return HttpResponse(json.dumps(ctx), content_type="application/json")  
        else:
            print "no guardar el comprobante de retencion"  
            try:
                ra.save()
                ctx = {"success":"no se ha guardado doc de retencion pero si el anexo"}
                return HttpResponse(json.dumps(ctx), content_type="application/json") 
            except Exception:
                ctx = {"fail":"no se ha guardado doc de retencion ni el anexo por fallo"}
                return HttpResponse(json.dumps(ctx), content_type="application/json")    
    else:
        ctx = {}
        return HttpResponse(json.dumps(ctx), content_type="application/json")