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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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
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))
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))
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)
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))
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))
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
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))
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))
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))
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))
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))
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))
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))
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))
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))
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,
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)
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))
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)
) 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 = {
def detalle_libro(request, slug): detalle_libro = Libro.objects.get(slug=slug) return render_to_response('detalle_libro.html', locals(), context_instance=ctx(request))
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))
def home(request): noticias = Noticia.objects.all() return render_to_response('portal/home.html', locals(), context_instance=ctx(request))
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))
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))