コード例 #1
0
def carrito(request):
    partial = request.GET.get('partial', '')
    if partial != '':
        opc = request.GET.get('opc', '0')
        ida = request.GET.get('ida', '0')
        can = request.GET.get('can', '0')
        result, suma, n, nro = carrito_result(request, opc, ida, can)
        if suma == 0:
            descuento = 0
            request.session['dscnt'] = 0
            request.session['dscnt_cod'] = ''
        descuento = request.session.get('dscnt', 0)
        if descuento > 0:
            descuento = CodigosDeDescuento.objects.get(id=descuento).pct
            suma = getPercent(suma, descuento)
        return render('web/_producto-elegido.html', locals(),
                      context_instance=ctx(request))
    else:
        result, suma, n, nro = carrito_result(request, 0)
        print(suma, 'SUMAAAAAAAAA!')
        if suma == 0:
            close_carrito(request)
            request.session['dscnt'] = 0
            request.session['dscnt_cod'] = ''
        print(request.session.get('dscnt'), 'ID DESCUENTO')
        descuento = request.session.get('dscnt', 0)
        if descuento > 0:
            descuento = CodigosDeDescuento.objects.get(id=descuento).pct
            suma = getPercent(suma, descuento)
        return render('web/producto-elegido.html', locals(),
                      context_instance=ctx(request))
コード例 #2
0
def curso(request, slug=False):
    log.info('VIEW: cursos')
    info = get_info()
    request.wHead = 'cursos'
    curso = get_object_or_404(Cursos, slug=slug)

    if request.method == 'POST':
        if request.user.is_authenticated():
            if not hasattr(request.user, 'is_client'):
                return render('superuser-noallowed.html',
                              locals(),
                              context_instance=ctx(request))
        cantidad = request.POST.get('cantidad', '')
        if cantidad:
            # ev = carrito_add_item(request, det.id, cantidad, det)
            result, suma, n, nro = carrito_result(request, '1', curso.id,
                                                  cantidad)
            try:
                importe = float(cantidad) * float(curso.precio)
            except Exception as e:
                importe = 0
            # request.session['tmp_add'] = '%s' % importe
        return redirect('pedidos:carrito')

    paises = Paises.objects.all().order_by('nombre')
    request.wHead = curso.categoria.slug
    return render('web/curso.html', locals(), context_instance=ctx(request))
コード例 #3
0
def micuenta_datos(request):
    log.info('VIEW: profile')
    row = request.user
    # pedidos = Pedido.objects.filter(usuario_id=str(row.id))
    # direcciones = Direccion.objects.filter(usuario=row)
    paises = Paises.objects.all().order_by('nombre')
    if request.method == 'POST':
        print request.POST
        # print 'post post'
        form = EditUsuarioForm(request.POST)
        # print form
        if form.is_valid():
            row = form.update(row.pk)
            mensajes_auth(request, 'login.cuenta.update')
            # messages.success(request, 'Se actualizó satisfactoriamente')
            return redirect('custom_auth:micuenta_datos')
        else:
            messages.error(request, 'Formulario no valido')
            log.warning('Error de formulario')
    else:
        initial = model_to_dict(row)
        form = EditUsuarioForm(initial)
    try:
        return render('web/actualizar-datos.html',
                      locals(),
                      context_instance=ctx(request))
    except Exception as e:
        return render('custom_auth/micuenta-datos.html',
                      locals(),
                      context_instance=ctx(request))
コード例 #4
0
def micuenta_direcciones(request):
    log.info('VIEW: addresses')
    usuario = request.user
    direcciones = Direccion.objects.filter(usuario=usuario,
                                           is_active=True).order_by('id')
    try:
        return render('web/micuenta-direcciones.html',
                      locals(),
                      context_instance=ctx(request))
    except Exception as e:
        return render('custom_auth/micuenta-direcciones.html',
                      locals(),
                      context_instance=ctx(request))
コード例 #5
0
def login_view(request):
    if request.user.is_authenticated():
        return redirect('custom_auth:micuenta_datos')
    # row, created = InfoAcceso.objects.get_or_create(pk=1)
    error_accesos = True
    if request.method == 'POST':
        next_url = request.POST.get('next', '')
        form = LoginForm(request.POST)
        if form.is_valid():
            user = form.auth()
            # print ufmisser
            if user is not None:
                if user.is_active:
                    user.last_login = datetime.now()
                    user.save()
                    login(request, user)
                    # mensajes_auth(request, 'login.inicio.ok')
                    # messages.success(request, u'Bienvenido, Se ha registrado e iniciado sesión satisfactoriamente')
                    sesioncarrito = request.session.get('sesioncarrito', '')
                    next_url = request.POST.get('next', '')
                    if next_url:
                        return redirect(next_url)
                    if sesioncarrito:
                        return redirect('pedidos:carrito')
                    return redirect('custom_auth:micuenta_datos')
                    # return redirect('web:home')
                else:
                    user_inactive = True
            else:
                error_accesos = True
                mensajes_auth(request, 'login.acceso.error')

        # return render(request, 'web/acceso/_ingresar-catalogo.html', locals())
    else:
        next_url = request.GET.get('next', '')
        form = LoginForm()

    # if error_accesos:
    #     mensajes_auth(request, 'login.acceso.error')

    # row, created = InfoLogin.objects.get_or_create(pk=1)
    meta_title = u'Login'
    # return render(request, 'web/acceso/ingresar-catalogo.html', locals())
    try:
        return render('web/iniciar-sesion.html',
                      locals(),
                      context_instance=ctx(request))
    except Exception as e:
        return render('custom_auth/login.html',
                      locals(),
                      context_instance=ctx(request))
コード例 #6
0
def librec(request):
    log.info('VIEW: librec')
    head = 'librec'
    seccion, created = LibroSeccion.objects.get_or_create(pk=1)
    return render('web/libro-reclamaciones.html',
                  locals(),
                  context_instance=ctx(request))
コード例 #7
0
def curso(request, slug=False):
    #log.info('VIEW: contacto')
    head = 'contacto'
    was_limited = getattr(request, 'limited', False)
    if was_limited:
        return ratelimit_view(request)
    if request.method == 'POST':
        #log.info('HOME : POST')
        #request.POST._mutable = True
        #request.POST['curso'] = get_object_or_404(Cursos, slug=slug)
        #request.POST['pais'] = get_object_or_404(Paises, pk=request.POST.get('pais',0))
        print(request.POST)
        form = ContactoInformacionForm(request.POST)
        if form.is_valid():
            form.save()
            form.enviaEmail()
            #threading.Thread(target=form.enviaEmail,).start()
            return redirect(reverse("contacto_enviado"))
        else:
            print(form.errors.as_text())
            request.session['error_form'] = form.errors
    else:
        form = ContactoInformacionForm()

    return render('web/contacto.html', locals(), context_instance=ctx(request))
コード例 #8
0
def suscript(request):
    #log.info('VIEW: suscript')
    head = 'contacto'
    was_limited = getattr(request, 'limited', False)
    if was_limited:
        return ratelimit_view(request)
    if request.method == 'POST':
        #log.info('HOME : POST')
        old_suscript = Suscript.objects.filter(
            email=request.POST.get('email')).first()
        form = SuscriptForm(request.POST)
        if form.is_valid():
            if old_suscript:
                return redirect(reverse("suscript_enviado"))
            else:
                form.save()
                form.enviaEmail()
                # threading.Thread(target=form.enviaEmail,).start()
            return redirect(reverse("suscript_enviado"))
        else:
            print(form.errors)
            request.session['error_form'] = form.errors
        print form.errors
    else:
        form = SuscriptForm()
    return render('web/form-suscript.html',
                  locals(),
                  context_instance=ctx(request))
コード例 #9
0
def ratelimit_view(request):
    ''' Vista lanzada al activar el bloqueo de django-ratelimit '''
    log.info('VIEW: ratelimit_view')

    return render('web/ratelimit.html',
                  locals(),
                  context_instance=ctx(request))
コード例 #10
0
def noticias(request):
    log.info('VIEW: home')
    info = get_info()
    request.wHead = 'noticias'
    last_page = request.GET.get('p', 1)
    noticias_all = Boticias.objects.order_by('-createdat')
    noticias = wPagin(last_page, noticias_all, 9)
    if request.method == 'POST':
        if request.POST.get('page', False):
            # noticias = wPagin(last_page,noticias_all,9)
            response = []
            for row in noticias:
                response.append({
                    "postid": row.postid,
                    "imagen": row.imagen,
                    "title": row.title,
                    "excerpt": row.excerpt,
                    "link": row.link,
                    "createdat": row.createdat,
                    #"id":row.pk,
                    #"name":row.nombre,
                    #"img":row.img.url,
                    #"fecha":dt_tmpl(row.fecha,"d N Y"),
                    #"descript":striptags(safe(row.descript)),
                    #"link":reverse('notivent:noticia', kwargs={'slug':row.slug}),
                })
            return JsonResponse({'items': response}, safe=True)

    seccion, created = HomeNoticiasSeccion.objects.get_or_create(pk=1)
    other, created = HomeEventosSeccion.objects.get_or_create(pk=1)
    # noticias = Noticias.objects.active().order_by('-fecha')
    return render('web/noticias.html', locals(), context_instance=ctx(request))
コード例 #11
0
def librec(request):
    head = 'librec'
    was_limited = getattr(request, 'limited', False)
    if was_limited:
        return ratelimit_view(request)
    if request.method == 'POST':
        if type_dict.get(request.POST.get('doc_type', '0'), False):
            request.POST._mutable = True
            request.POST['doc_type'] = type_dict.get(
                request.POST.get('doc_type'))
        else:
            raise Http404
        form = LibRecForm(request.POST)
        if form.is_valid():
            form.save()
            form.enviaEmail()
            # threading.Thread(target=form.enviaEmail,).start()
            return redirect(reverse("reclamo_enviado"))
        else:
            print(form.errors.as_text())
            request.session['error_form'] = form.errors.as_text()
            return redirect(reverse("librec"))
    else:
        form = LibRecForm()
    return render('web/contacto.html', locals(), context_instance=ctx(request))
コード例 #12
0
def set_password(request, uuid_hash):
    log.info('VIEW: set_password')

    if request.method == 'POST':
        form = SetPasswordForm(request.POST)
        if form.is_valid():
            form.save()
            # form.enviaEmail()

            mensajes_auth(request, 'login.set_password.envio')
            # messages.success(request, u'Se ha actualizado satisfatoriamente, ahora puede iniciar sesión con la nueva contraseña')
            return HttpResponseRedirect(
                reverse('custom_auth:set_password_success'))
        else:
            print(form.errors)
            log.warning('Error de formulario')
    else:
        try:
            user = Usuario.objects.get(uuid_hash=uuid_hash)
        except Usuario.DoesNotExist():
            user = None
        form = SetPasswordForm(initial={
            'email': user.email,
            'uuid_hash': uuid_hash
        })

    return render('custom_auth/password/set-password.html',
                  locals(),
                  context_instance=ctx(request))
コード例 #13
0
 def validador(request, *args, **kwargs):
     if hasattr(request.user, 'is_client'):
         return view(request, *args, **kwargs)
     else:
         return render('superuser-noallowed.html',
                       locals(),
                       context_instance=ctx(request))
コード例 #14
0
def micuenta_listadeseos(request):
    log.info('VIEW: listadeseos')
    usuario = request.user
    if request.method == 'POST':
        ida = request.POST.get('ida', '')
        opc = request.POST.get('opc', '')
        if opc == '1':
            fav = Favoritos.objects.get(id=int(ida))
            # ev = carrito_add_item(request, det.id, cantidad, det)
            result, suma, n, nro = carrito_result(request, '1',
                                                  fav.producto.id, '1')

            request.session['tmp_add'] = '%s' % fav.producto.id
            # print result
        if opc == '2':
            Favoritos.objects.filter(id=int(ida)).delete()
            request.session['tmp_del'] = 'delete'
        return redirect('custom_auth:micuenta_listadeseos')

    tmp_add = request.session.get('tmp_add', '')
    if tmp_add != '':
        det = Producto.objects.get(id=int(tmp_add))
    else:
        det = None

    request.session['tmp_add'] = ''
    tmp_del = request.session.get('tmp_del', '')
    request.session['tmp_del'] = ''
    deseos = Favoritos.objects.filter(usuario__pk=usuario.pk)
    # direcciones = Direccion.objects.filter(usuario=usuario, is_active=True).order_by('id')
    # try:
    return render('web/micuenta-deseos.html',
                  locals(),
                  context_instance=ctx(request))
コード例 #15
0
def eventos(request):
    log.info('VIEW: home')
    info = get_info()
    request.wHead = 'eventos'
    last_page = request.GET.get('p', 1)
    eventos_all = EventosSociales.objects.active().order_by('-fecha')[:365]
    if request.method == 'POST':
        if request.POST.get('page', False):
            eventos = wPagin(last_page, eventos_all, 9)
            response = []
            for row in eventos:
                response.append({
                    "name":
                    row.nombre,
                    "img":
                    row.img.url,
                    "link":
                    reverse('notivent:evento', kwargs={'slug': row.slug}),
                })
            return JsonResponse({'items': response}, safe=True)

    eventos = wPagin(last_page, eventos_all, 9)
    seccion, created = HomeEventosSeccion.objects.get_or_create(pk=1)
    other, created = HomeNoticiasSeccion.objects.get_or_create(pk=1)

    # eventos = EventosSociales.objects.active().filter(fecha__gte=date.today())
    return render('web/eventos.html', locals(), context_instance=ctx(request))
コード例 #16
0
def facturacion(request, token):
    log.info('VIEW: facturacion')
    # head = 'datos de facturacion'
    # pedido_codigo = request.session.get('num_pedido')
    pedido = Pedido.objects.get(token=token)
    codigo = pedido.codigo
    if pedido.completed:
        return redirect('pedidos:gracias_datos')

    paises = Paises.objects.all().order_by('nombre')
    initial = {}
    if pedido.usuario_id != "0":
        client = Usuario.objects.get(id=pedido.usuario_id)
        initial['usuario_telefono'] = client.telefono
        initial['usuario_tipodocumento'] = client.tipodocumento
        initial['usuario_nrodocumento'] = client.nrodocumento
        initial['usuario_pais'] = client.pais

    initial['usuario_nombres'] = pedido.usuario_nombres
    initial['usuario_apellidos'] = pedido.usuario_apellidos
    initial['usuario_email'] = pedido.usuario_email
    if request.POST:
        form = UpdatePedidoForm(request.POST)
        if form.is_valid():
            form.update_pedido(request)
            return redirect('pedidos:gracias_datos')
        else:
            print(form.errors)
    return render(
        'web/facturacion.html', locals(),
        context_instance=ctx(request))
コード例 #17
0
def myaccount(request):
    log.info('VIEW: addresses')
    # usuario = request.user
    # direcciones = Direccion.objects.filter(usuario=usuario)

    return render('custom_auth/micuenta.html',
                  locals(),
                  context_instance=ctx(request))
コード例 #18
0
ファイル: views.py プロジェクト: eneger/Eneger
def index(request):
    if request=="POST":
        form=PictureForm(request.POST,request.FILES)
        if form.is_valid():
            picture=form.save()
    else:
        form=PictureForm()
    return render('home/index.html',locals(), ctx(request))
コード例 #19
0
def noticia(request, slug=False):
    log.info('VIEW: home')
    info = get_info()
    request.wHead = 'noticias'
    noticia = get_object_or_404(Noticias, slug=slug)
    return render('web/noticia-detalle.html',
                  locals(),
                  context_instance=ctx(request))
コード例 #20
0
def page_500(request):
    ruta = request.path
    log.error('Error 500: {0}'.format(ruta))
    response = render('500.html', locals(), context_instance=ctx(request))
    response.status_code = 500
    response.reason_phrase = "Server Conflict!! - " + settings.PROJECT_NAME.title(
    )
    return response
コード例 #21
0
def show_cip(request):
    url_pagoefectivo = settings.PAGOEFECTIVO_URL
    token_response = request.session['token_response']
    print(token_response, 'TOKEN CIP')
    close_carrito(request)

    return render('web/show-cip.html',
                  locals(), context_instance=ctx(request))
コード例 #22
0
def reporteventas(request, pk):
    compra = Factura.objects.get(pk=pk)
    medicamentos = compra.factura.all()
    hora = datetime.today()

    return render('factura/reporte_venta.html',
                  locals(),
                  context_instance=ctx(request))
コード例 #23
0
def base_template(request, template_name='web/', slug=''):
    log.info('VIEW: base_template')
    head = 'ignore'
    try:
        return render(template_name + slug + '.html',
                      locals(),
                      context_instance=ctx(request))
    except Exception, e:
        return JsonResponse({'status': "Archivo Inexistente."}, safe=True)
コード例 #24
0
def quests(request):
    log.info('VIEW: home')
    info = get_info()
    request.wHead = 'quests'
    seccion, created = QuestSeccion.objects.get_or_create(pk=1)
    preguntas = Quest.objects.active().order_by('posicion')
    return render('web/preguntas-frecuentes.html',
                  locals(),
                  context_instance=ctx(request))
コード例 #25
0
def conocenos(request):
    log.info('VIEW: conocenos')
    head = 'conocenos'
    p_e = PorqueElegirnos.objects.active().order_by('posicion')
    seccion, created = Conocenos.objects.get_or_create(pk=1)
    docentes = Profesores.objects.active().order_by('posicion')[:12]
    return render('web/conocenos.html',
                  locals(),
                  context_instance=ctx(request))
コード例 #26
0
def page_404(request):
    ruta = request.path
    log.error('Error 404: {0}'.format(ruta))
    head = '404'
    response = render('404.html', locals(), context_instance=ctx(request))
    response.status_code = 404
    response.reason_phrase = "Page No Found!! - " + settings.PROJECT_NAME.title(
    )
    return response
コード例 #27
0
ファイル: views.py プロジェクト: hanstakeshi/pytest2
def home(request):
    meta_title = "Nukleo"
    log.info('VIEW: home')
    info = get_info()
    home, created = Home.objects.get_or_create(pk=1)
    home_banners = HomeBanner.objects.filter(
        home_id=home.id).order_by('position')

    return render('web/home.html', locals(), context_instance=ctx(request))
コード例 #28
0
def terms(request):
    log.info('VIEW: home')
    info = get_info()
    request.wHead = 'terms'
    seccion, created = TermsSeccion.objects.get_or_create(pk=1)
    terminos = Terms.objects.active().order_by('posicion')
    return render('web/terminos-y-condiciones.html',
                  locals(),
                  context_instance=ctx(request))
コード例 #29
0
def graciascompra(request):
    paypal_pay = request.session.get("paypal_pay", False)
    seccion, created = PaypalInfo.objects.get_or_create(pk=1)
    # print(request.session['num_pedido'])
    pedido = Pedido.objects.get(codigo=request.session['num_pedido'])
    print(pedido, 'PEDIDO')
    return render(
        'web/mensaje-pago-exitoso.html',
        locals(), context_instance=ctx(request))
コード例 #30
0
def reportecompras(request, pk):
    compra = Cabecera.objects.get(pk=pk)
    medicamentos = compra.cabecera.all()

    total = 0
    for expe in medicamentos:
        total = (expe.cantidad * expe.medicamento.precio_Compra) + total

    return render('compras/reportecompras.html', locals(), context_instance=ctx(request))
コード例 #31
0
def crear_pagina(request):
    ''' Vista para crear un entradas'''
    if request.method == "POST":
        form = NoticiaForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return redirect(reverse_lazy('usuario:listado_paginas'))
    else:
        form = NoticiaForm()
    return render_to_response('portal/crear-pagina.html', locals(), context_instance=ctx(request))
コード例 #32
0
def categorias(request):
    categorias_abuelo = MuchasCategoria.objects.all()
    # print categorias_abuelo
    if request.method == "POST":
        form = MuchasCategoriaForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect(reverse("pruebas:categorias"))
    else:
        form = MuchasCategoriaForm()
    # categoria_padre = categorias_abuelo[0].mucha_categoria.all()
    return render_to_response('portal/categorias.html', locals(), context_instance=ctx(request))
コード例 #33
0
def ingresar(request):
    ''' Vista de login '''
    usuario_principal = get_object_or_404(Usuario, schema_name='public')
    print (usuario_principal.domain_url)
    if request.method == "POST":
        dominio = request.POST.get("dominio")+"."+usuario_principal.domain_url

        usuario = get_object_or_404(Usuario, domain_url=dominio)

        print (dominio+".localhost:8004")
        return HttpResponseRedirect("http://"+dominio+":8000")
    return render_to_response('portal/login.html', locals(), context_instance=ctx(request))
コード例 #34
0
def ingresar(request):
    ''' Vista de login '''
    if request.method == "POST":
        form = IngresarForm(request.POST)
        if form.is_valid():
            user = form.auth()
            if user is not None:
                if user.estado:
                    user.last_login = timezone.now()
                    user.save()
                    login(request, user)
                    return redirect(reverse('noticia:crear_pagina'))
                else:
                    messages.add_message(request, messages.WARNING, 'Usuario no se encuentra registrado')
            else:
                messages.add_message(request, messages.WARNING, u'El email y contraseña son inválidos')
    else:
        form = IngresarForm()

    return render_to_response('portal/login.html', locals(), context_instance=ctx(request))
コード例 #35
0
def crear_pagina(request):
    ''' Vista para crear un entradas'''
    r = redis.StrictRedis(host='localhost', port=6379, db=0)
    # form_json = {
    #     'titulo': form.cleaned_data.get('titulo'),
    #     'contenido': form.cleaned_data.get('contenido')
    # }

    if request.method == "POST":
        form = NoticiaForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            form_json = {
                'titulo': form.cleaned_data.get('titulo'),
                'contenido': form.cleaned_data.get('contenido')
            }
            r.publish('mundo', json.dumps(form_json))
            return redirect(reverse_lazy('noticia:listado_paginas'))
    else:
        form = NoticiaForm()
    return render_to_response('portal/crear-pagina.html', locals(), context_instance=ctx(request))
コード例 #36
0
ファイル: views.py プロジェクト: bluehawkarthur/ebil
                    crearMovimiento.save()

                # return HttpResponseRedirect(reverse('detalleventanota', args=(crearVenta.pk,)))
                return render('ventas/venta.html', {'form': form, 'popup': True, 'pk': crearVenta.pk, 'sucursal': sucursal, 'actividad': actividad, 'url': '/detalle_ventanota/'}, context_instance=ctx(request))

                # messages.success(
                #     request, 'La compra se ha realizado satisfactoriamente')

        except Exception, e:
            try:
                transaction.savepoint_rollback(sid)
            except:
                pass
            messages.error(request, e)

    return render('ventas/venta.html', {'form': form, 'sucursal': sucursal, 'actividad': actividad}, context_instance=ctx(request))

# def detalleVenta(request, pk):
#     print pk
#     venta = Venta.objects.filter(id=pk)
#     detalle = DetalleVenta.objects.filter(venta=venta)
    

#     vd = []
#     for d in detalle:
#         vd.append(d)

#     print vd

#     data = {
#         'nit': venta[0].nit,
コード例 #37
0
ファイル: views.py プロジェクト: bluehawkarthur/ebil
def ventaCrear(request):


    form = None
    sucursal = Sucursal.objects.filter(empresa=request.user.empresa).order_by('pk')
    actividad = Actividad.objects.filter(empresa=request.user.empresa).order_by('pk')

    if request.method == 'POST':
        sid = transaction.savepoint()

        try:
            proceso = json.loads(request.POST.get('proceso'))
            print 'actividad'
            print proceso['actividad']

            if len(proceso['producto']) <= 0:
                msg = 'No se ha seleccionado ningun producto'
                raise Exception(msg)

            total = 0

            # calculo total de compras
            for k in proceso['producto']:
                total += decimal.Decimal(k['sdf'])

            if proceso['movimiento'] == 'facturar':
                venta_data = Venta.objects.filter(empresa=request.user.empresa, tipo_movimiento='facturar', sucursal=proceso['sucursal'], actividad=proceso['actividad']).exclude(nro_factura__isnull=True).last()
                dosificacion = DatosDosificacion.objects.filter(empresa=request.user.empresa, sucursal=proceso['sucursal'], actividad=Actividad.objects.get(empresa=request.user.empresa, actividad=proceso['actividad'])).last()
                cliente = Cliente.objects.filter(nit=proceso['nit'])
                if not cliente:
                    cli = Cliente(
                        razonsocial=proceso['razon'],
                        nit=proceso['nit'],
                        empresa=request.user.empresa,
                    )
                    cli.save()

                if dosificacion != None:
                    print 'facturaaaaaaaaa'
                    if dosificacion.fecha >= datetime.date.today():
                        nro_init2 = int(dosificacion.nro_conrelativo)
                        contador = dosificacion.contador

                        nro_init = int(dosificacion.nro_conrelativo) - 1

                        if venta_data and venta_data.nro_factura == nro_init2 and contador == 0:
                            nro = nro_init
                            contador = contador + 1
                            dos = DatosDosificacion.objects.filter(id=dosificacion.pk)
                            dos.update(contador=contador)
                        else:
                            if venta_data and (venta_data.nro_factura - contador) == nro_init2:
                                contador = contador + 1
                                dos = DatosDosificacion.objects.filter(id=dosificacion.pk)
                                dos.update(contador=contador)
                                nro = venta_data.nro_factura
                                if nro is None:
                                    nro = nro_init
                            else:
                                if contador == 0:
                                    nro = nro_init
                                    contador = contador + 1
                                    dos = DatosDosificacion.objects.filter(id=dosificacion.pk)
                                    dos.update(contador=contador)
                                else:
                                    nro = venta_data.nro_factura
                                print 'sta entarando a cero'

                        fecha_venta = datetime.datetime.strptime(proceso['fecha'], "%Y-%m-%d").strftime("%Y-%m-%d")
                        cod_control = codigoControl(dosificacion.llave_digital, dosificacion.nro_autorizacion, nro + 1, proceso['nit'], fecha_venta, total, request.user.empresa.nit, total)

                        print 'el cogigo en venta', cod_control
                        
                        if proceso['tipo_compra'] == 'credito':
                            date_1 = datetime.datetime.strptime(proceso['fecha'], "%Y-%m-%d")
                            end_date = date_1 + datetime.timedelta(days=int(proceso['dias']))
                            today = datetime.date.today()
                            
                            print 'tiempo de fecha vencimiento'
                            print (today-datetime.date(2016, 1, 12)).days
                        else:
                            end_date = None

                        crearVenta = Venta(
                            nit=proceso['nit'],
                            nro_factura=nro + 1,
                            razon_social=proceso['razon'],
                            fecha=proceso['fecha'],
                            tipo_compra=proceso['tipo_compra'],
                            cantidad_dias=proceso['dias'],
                            total=total,
                            descuento=proceso['descuento'],
                            recargo=proceso['recargo'],
                            ice=proceso['ice'],
                            excentos=proceso['excentos'],
                            tipo_descuento=proceso['tipo_descuento'],
                            tipo_recargo=proceso['tipo_recargo'],
                            fecha_vencimiento=end_date,
                            empresa=request.user.empresa,
                            numero_autorizacion=dosificacion.nro_autorizacion,
                            llave_digital=dosificacion.llave_digital,
                            codigo_control=cod_control,
                            fecha_limite=dosificacion.fecha,
                            tipo_movimiento=proceso['movimiento'],
                            sucursal=Sucursal.objects.get(id=proceso['sucursal']),
                            actividad=dosificacion.actividad,
                        )
                        
                        crearVenta.save()

                        for k in proceso['producto']:
                         
                            item = Item.objects.filter(id=k['pk'])
                            cantidad_total = item[0].cantidad - int(k['cantidad'])
                            
                            item.update(cantidad=cantidad_total, fecha_transaccion=proceso['fecha'])

                            crearDetalle = DetalleVenta(
                                venta=crearVenta,
                                item=Item.objects.get(id=k['pk']),
                                cantidad=int(k['cantidad']),
                                precio_unitario=item[0].precio_unitario,
                                subtotal=decimal.Decimal(k['subtotal']),
                                descuento=decimal.Decimal(k['descuentos']),
                                recargo=decimal.Decimal(k['recargos']),
                                ice=decimal.Decimal(k['ice']),
                                excentos=decimal.Decimal(k['excentos']),
                                scf=decimal.Decimal(k['sdf']),
                                tipo_descuento=k['tipo_descuento'],
                                tipo_recargo=k['tipo_recargo'],

                            )

                            detalle = '%s a %s s/g factura Nro. %s' % ('Venta', proceso['razon'], nro + 1)

                            crearMovimiento = Movimiento(
                                cantidad=int(k['cantidad']),
                                precio_unitario=item[0].precio_unitario,
                                detalle=detalle,
                                fecha_transaccion=proceso['fecha'],
                                motivo_movimiento='salida',
                                item=Item.objects.get(id=k['pk']),
                                empresa=request.user.empresa,
                            )

                            crearDetalle.save()
                            crearMovimiento.save()

                        return render('ventas/venta.html', {'form': form, 'popup': True, 'pk': crearVenta.pk, 'sucursal': sucursal, 'actividad': actividad, 'url': '/detalle_venta/' }, context_instance=ctx(request))
                        # return HttpResponseRedirect(reverse('detalleventa', args=(crearVenta.pk,)))
                        # return HttpResponse('<script type="text/javascript">opener.popup("/detalle_venta/%s");</script>' % \
                        	# (crearVenta.pk))
                        # return HttpResponse('<script type="text/javascript">opener.popup("/detalle_venta/%s");opener.location.href = "/";</script>' % (crearVenta.pk))
                        # messages.success(
                        #     request, 'La compra se ha realizado satisfactoriamente')
                    else:
                        messages.error(request, 'La fecha limite de emision de la factura a caducado')
                else:
                        messages.error(request, 'Registre sus dosificaciones para que pueda realizar sus facturaciones')

            elif proceso['movimiento'] == 'baja':

                venta_data = Venta.objects.filter(empresa=request.user.empresa).exclude(nro_baja__isnull=True).last()

                if venta_data:
                    nro = venta_data.nro_baja
                    if nro is None:
                        nro = 0
                else:
                    nro = 0

                crearVenta = Venta(
                    nit=0,
                    razon_social='baja',
                    total=total,
                    fecha=proceso['fecha'],
                    tipo_compra=proceso['tipo_compra'],
                    cantidad_dias=proceso['dias'],
                    descuento=proceso['descuento'],
                    recargo=proceso['recargo'],
                    ice=proceso['ice'],
                    excentos=proceso['excentos'],
                    tipo_descuento=proceso['tipo_descuento'],
                    tipo_recargo=proceso['tipo_recargo'],
                    empresa=request.user.empresa,
                    tipo_movimiento=proceso['movimiento'],
                    sucursal=Sucursal.objects.get(id=proceso['sucursal']),
                    nro_baja=nro+1,
                )
                crearVenta.save()

                for k in proceso['producto']:
                    item = Item.objects.filter(id=k['pk'])
                    cantidad_total = item[0].cantidad - int(k['cantidad'])
                    print cantidad_total
                    item.update(cantidad=cantidad_total, fecha_transaccion=proceso['fecha'])

                    crearDetalle = DetalleVenta(
                        venta=crearVenta,
                        item=Item.objects.get(id=k['pk']),
                        cantidad=int(k['cantidad']),
                        precio_unitario=item[0].precio_unitario,
                        subtotal=decimal.Decimal(k['subtotal']),
                        descuento=decimal.Decimal(k['descuentos']),
                        recargo=decimal.Decimal(k['recargos']),
                        ice=decimal.Decimal(k['ice']),
                        excentos=decimal.Decimal(k['excentos']),
                        scf=decimal.Decimal(k['sdf']),
                        tipo_descuento=k['tipo_descuento'],
                        tipo_recargo=k['tipo_recargo'],

                    )

                    crearMovimiento = Movimiento(
                        cantidad=int(k['cantidad']),
                        precio_unitario=item[0].precio_unitario,
                        detalle='Baja',
                        fecha_transaccion=proceso['fecha'],
                        motivo_movimiento='salida',
                        item=Item.objects.get(id=k['pk']),
                        empresa=request.user.empresa,
                    )
                    crearDetalle.save()
                    crearMovimiento.save()
                return render('ventas/venta.html', {'form': form, 'popup': True, 'pk': crearVenta.pk, 'sucursal': sucursal, 'actividad': actividad, 'url': '/detalle_ventabaja/'}, context_instance=ctx(request))

            elif proceso['movimiento'] == 'proforma':

                venta_data = Venta.objects.filter(empresa=request.user.empresa).exclude(nro_nota__isnull=True).last()

                if venta_data:
                    nro = venta_data.nro_nota
                    if nro is None:
                        nro = 0
                else:
                    nro = 0

                if proceso['nit']:
                    cliente = Cliente.objects.filter(nit=proceso['nit'])
                    nitget = proceso['nit']
                    if not cliente:
                        cli = Cliente(
                            razonsocial=proceso['razon'],
                            nit=proceso['nit'],
                            empresa=request.user.empresa,
                        )
                        cli.save()
                else:
                    nitget = 0

                if proceso['tipo_compra'] == 'credito':
                    date_1 = datetime.datetime.strptime(proceso['fecha'], "%Y-%m-%d")
                    end_date = date_1 + datetime.timedelta(days=int(proceso['dias']))
                    today = datetime.date.today()

                else:
                    end_date = None

                crearVenta = Venta(
                    nit=nitget,
                    razon_social=proceso['razon'],
                    fecha=proceso['fecha'],
                    tipo_compra=proceso['tipo_compra'],
                    cantidad_dias=proceso['dias'],
                    total=total,
                    descuento=proceso['descuento'],
                    recargo=proceso['recargo'],
                    ice=proceso['ice'],
                    excentos=proceso['excentos'],
                    tipo_descuento=proceso['tipo_descuento'],
                    tipo_recargo=proceso['tipo_recargo'],
                    fecha_vencimiento=end_date,
                    empresa=request.user.empresa,
                    tipo_movimiento=proceso['movimiento'],
                    nro_nota=nro+1,
                    sucursal=Sucursal.objects.get(id=proceso['sucursal']),
                )

                crearVenta.save()

                for k in proceso['producto']:

                    item = Item.objects.filter(id=k['pk'])
                    cantidad_total = item[0].cantidad - int(k['cantidad'])

                    item.update(cantidad=cantidad_total, fecha_transaccion=proceso['fecha'])

                    crearDetalle = DetalleVenta(
                        venta=crearVenta,
                        item=Item.objects.get(id=k['pk']),
                        cantidad=int(k['cantidad']),
                        precio_unitario=item[0].precio_unitario,
                        subtotal=decimal.Decimal(k['subtotal']),
                        descuento=decimal.Decimal(k['descuentos']),
                        recargo=decimal.Decimal(k['recargos']),
                        ice=decimal.Decimal(k['ice']),
                        excentos=decimal.Decimal(k['excentos']),
                        scf=decimal.Decimal(k['sdf']),
                        tipo_descuento=k['tipo_descuento'],
                        tipo_recargo=k['tipo_recargo'],

                    )

                    detalle = '%s a %s s/g nota Nro. %s' % ('Venta', proceso['razon'],nro+1)

                    crearMovimiento = Movimiento(
                        cantidad=int(k['cantidad']),
                        precio_unitario=item[0].precio_unitario,
                        detalle=detalle,
                        fecha_transaccion=proceso['fecha'],
                        motivo_movimiento='salida',
                        item=Item.objects.get(id=k['pk']),
                        empresa=request.user.empresa,
                    )

                    crearDetalle.save()
                    crearMovimiento.save()

                # return HttpResponseRedirect(reverse('detalleventanota', args=(crearVenta.pk,)))
                return render('ventas/venta.html', {'form': form, 'popup': True, 'pk': crearVenta.pk, 'sucursal': sucursal, 'actividad': actividad, 'url': '/detalle_ventanota/'}, context_instance=ctx(request))

                # messages.success(
                #     request, 'La compra se ha realizado satisfactoriamente')

        except Exception, e:
            try:
                transaction.savepoint_rollback(sid)
            except:
                pass
            messages.error(request, e)
コード例 #38
0
def prueba(request):
    # prueba = PruebaCampos.objects.filter(rango_recha__contains=NumericRange(10-10-10, 10-10-10))
    # print prueba[0].rango_recha
    categorias_abuelo = MuchasCategoria.objects.all()
    return render_to_response('pruebas.html', locals(), context_instance=ctx(request))
コード例 #39
0
ファイル: views.py プロジェクト: bluehawkarthur/ebil
def compraCrear(request):

    form = None
    centro_costos = CentroCostos.objects.filter(empresa=request.user.empresa)
    if request.method == 'POST':
        sid = transaction.savepoint()
        try:
            proceso = json.loads(request.POST.get('proceso'))
            if len(proceso['producto']) <= 0:
                msg = 'No se ha seleccionado ningun producto'
                raise Exception(msg)
            # if proceso['nit'] == '':
            #     msg = 'Ingrese nit'
            #     raise Exception(msg)

            total = 0
            # calculo total de compras
            for k in proceso['producto']:
                total += decimal.Decimal(k['sdf'])

            if proceso['tipo_compra'] == 'credito':
                date_1 = datetime.datetime.strptime(proceso['fecha'], "%Y-%m-%d")
                end_date = date_1 + datetime.timedelta(days=int(proceso['dias']))
                today = datetime.date.today()
            else:
                end_date = None

            compra_data = Compra.objects.filter(empresa=request.user.empresa).exclude(nro_nota__isnull=True).last()

            if compra_data:
                nro = compra_data.nro_nota
                if nro is None:
                    nro = 0
            else:
                nro = 0

            print total
            crearCompra = Compra(
                nit=proceso['nit'],
                razon_social=proceso['razon'],
                nro_factura=proceso['nro_factura'],
                nro_autorizacion=proceso['nro_autorizacion'],
                fecha=proceso['fecha'],
                cod_control=proceso['codigo_control'],
                tipo_compra=proceso['tipo_compra'],
                cantidad_dias=proceso['dias'],
                total=total,
                descuento=proceso['descuento'],
                recargo=proceso['recargo'],
                ice=proceso['ice'],
                excentos=proceso['excentos'],
                tipo_descuento=proceso['tipo_descuento'],
                tipo_recargo=proceso['tipo_recargo'],
                empresa=request.user.empresa,
                fecha_vencimiento=end_date,
                nro_nota=nro + 1,

            )
            crearCompra.save()

            for k in proceso['producto']:
                if k['centro_costos'] == 'A':
                    item = Item.objects.filter(id=k['pk'])
                    cantidad_total = item[0].cantidad + int(k['cantidad'])
                    today = date.today()
                    item.update(cantidad=cantidad_total, fecha_transaccion=today)

                    crearDetalle = DetalleCompra(
                        compra=crearCompra,
                        producto=Item.objects.get(id=k['pk']),
                        codigo=k['codigo_item'],
                        cantidad=int(k['cantidad']),
                        unidad=k['unidad'],
                        detalle=k['detalle'],
                        precio_unitario=decimal.Decimal(k['precio_unitario']),
                        subtotal=decimal.Decimal(k['subtotal']),
                        descuento=decimal.Decimal(k['descuentos']),
                        recargo=decimal.Decimal(k['recargos']),
                        ice=decimal.Decimal(k['ice']),
                        excentos=decimal.Decimal(k['excentos']),
                        scf=decimal.Decimal(k['sdf']),
                        centro_costos=k['centro_costos'],
                        tipo_descuento=k['tipo_descuento'],
                        tipo_recargo=k['tipo_recargo'],

                    )

                    detalle = '%s a %s s/g factura Nro. %s' % ('Compra', proceso['razon'], proceso['nro_factura'])

                    crearMovimiento = Movimiento(
                        cantidad=int(k['cantidad']),
                        precio_unitario=decimal.Decimal(k['precio_unitario']),
                        detalle=detalle,
                        fecha_transaccion=proceso['fecha'],
                        motivo_movimiento='ingreso',
                        item=Item.objects.get(id=k['pk']),
                        empresa=request.user.empresa,
                    )

                    crearDetalle.save()
                    crearMovimiento.save()

                else:
                    print 'centro de costossssssss'
                    print k['centro_costos']
                    if CentroCostos.objects.filter(descripcion=k['centro_costos']):
                        pass
                    else:
                        centro = CentroCostos(
                            descripcion=k['centro_costos'],
                            empresa=request.user.empresa
                        )
                        centro.save()

                    crearDetalle = DetalleCompra(
                        compra=crearCompra,
                        codigo=k['codigo_item'],
                        cantidad=int(k['cantidad']),
                        unidad=k['unidad'],
                        detalle=k['detalle'],
                        precio_unitario=decimal.Decimal(k['precio_unitario']),
                        subtotal=decimal.Decimal(k['subtotal']),
                        descuento=decimal.Decimal(k['descuentos']),
                        recargo=decimal.Decimal(k['recargos']),
                        ice=decimal.Decimal(k['ice']),
                        excentos=decimal.Decimal(k['excentos']),
                        scf=decimal.Decimal(k['sdf']),
                        centro_costos=k['centro_costos'],
                        tipo_descuento=k['tipo_descuento'],
                        tipo_recargo=k['tipo_recargo'],

                    )

                    crearDetalle.save()

            # return HttpResponseRedirect(reverse('detallecompra', args=(crearCompra.pk,)))
            return render('compras/compra.html', {'form': form, 'costos': centro_costos, 'popup': True, 'pk': crearCompra.pk, 'url': '/detalle_compra/' }, context_instance=ctx(request))


        except Exception, e:
            try:
                transaction.savepoint_rollback(sid)
            except:
                pass
            messages.error(request, e)
コード例 #40
0
ファイル: views.py プロジェクト: bluehawkarthur/ebil
                    )

                    crearDetalle.save()

            # return HttpResponseRedirect(reverse('detallecompra', args=(crearCompra.pk,)))
            return render('compras/compra.html', {'form': form, 'costos': centro_costos, 'popup': True, 'pk': crearCompra.pk, 'url': '/detalle_compra/' }, context_instance=ctx(request))


        except Exception, e:
            try:
                transaction.savepoint_rollback(sid)
            except:
                pass
            messages.error(request, e)

    return render('compras/compra.html', {'form': form, 'costos': centro_costos}, context_instance=ctx(request))


# def detalleCompra(request, pk):
#     print pk
#     compra = Compra.objects.filter(id=pk)
#     detalle = DetalleCompra.objects.filter(compra=compra)


#     vd = []
#     for d in detalle:
#         vd.append(d)

#     print vd

#     data = {
コード例 #41
0
def detalle_libro(request, slug):
    detalle_libro = Libro.objects.get(slug=slug)
    return render_to_response('detalle_libro.html', locals(), context_instance=ctx(request))
コード例 #42
0
def listado_paginas(request):
    ''' Vista para mostrar la tabla de las entradas creadas'''
    noticias = Noticia.objects.all().order_by('-fecha')
    return render_to_response('portal/listado-pagina.html', locals(), context_instance=ctx(request))
コード例 #43
0
def home(request):
    noticias = Noticia.objects.all()
    return render_to_response('portal/home.html', locals(), context_instance=ctx(request))
コード例 #44
0
def ver_pagina(request, pk):
    ''' Vista ver el detalle de una pagina'''
    noticia = get_object_or_404(Noticia, pk=pk)
    return render_to_response('portal/ver-pagina.html', locals(), context_instance=ctx(request))
コード例 #45
0
def home(request):
    autores_libros = Autor_Libro.objects.all().order_by('fecha_publicacion')[:10]

    return render_to_response('home.html', locals(), context_instance=ctx(request))