コード例 #1
0
ファイル: views.py プロジェクト: alacret/ferrecabimas
def facturar(request):
    if request.method == 'POST':
        productos = request.POST.getlist("productos")
        
        if len(productos) == 0:
            return HttpResponseRedirect('/productos/vender')
        
        factura = Factura()
        factura.save()
        
        for id_producto in productos:
            cantidad = request.POST['cantidad['+id_producto+']']
            producto = Producto.objects.get(id = id_producto)
            
            if producto.cantidad and producto.cantidad >= cantidad:
                producto.cantidad  = producto.cantidad - cantidad 
                producto.save()
            
            renglon = RenglonFactura()
            renglon.producto = producto
            renglon.factura = factura
            renglon.costo = producto.costo
            renglon.precio = float(str(request.POST['costo['+id_producto+']']).replace(",","."))
            renglon.cantidad = request.POST['cantidad['+id_producto+']']
            renglon.save()
        return HttpResponseRedirect('/productos/vender')
    return HttpResponseRedirect('/productos/vender')
コード例 #2
0
ファイル: app.py プロジェクト: angelopez10/LaTiendaBackEnd
def checkout(id):
    if not request.is_json:
        return jsonify({"msg": "Missing JSON in request"}), 400

    ItemCompradoId = request.json.get('ItemProductoCompradoId', None)
    CantidaProductoComprado = request.json.get('CantidaProductoComprado', None)
    precioProductoSeleccionado = request.json.get('precioProductoSeleccionado',
                                                  None)
    usuario_id = request.json.get('usuario_id', None)
    totalFactura = request.json.get('totalFactura', None)
    totalProductosComprados = request.json.get('totalProductosComprados', None)
    usuarioActual = request.json.get('usuarioActual', None)
    emailTiendaSeleccionada = request.json.get('emailTiendaSeleccionada', None)

    email = Usuario.query.filter_by(id=usuario_id).first().email
    productos = Productos.query.filter(Productos.id.in_(ItemCompradoId)).all()

    usua = Factura()
    usua.usuario_factura_id = usuario_id
    usua.total = totalFactura
    db.session.add(usua)
    db.session.commit()

    factura_id = Factura.query.order_by(Factura.id.desc()).first().id
    print(factura_id)
    i = 0
    for prod in productos:
        usua = Detallefactura()
        usua.productos_comprados = int(CantidaProductoComprado[i])
        usua.factura_id = factura_id
        usua.producto_id = int(ItemCompradoId[i])
        usua.precio = int(precioProductoSeleccionado[i])
        db.session.add(usua)
        db.session.commit()
        i = i + 1

    i = 0
    for prod in productos:

        prod.stock = int(prod.stock) - int(CantidaProductoComprado[i])
        i = i + 1
        db.session.commit()

    html = render_template('email-compraProductos.html',
                           users=totalProductosComprados)
    send_mail("Compra", "*****@*****.**", email, html)
    html = render_template('email-ProductosComprados.html',
                           usuarioactual=usuarioActual,
                           users=totalProductosComprados)
    send_mail("Productos comprados", "*****@*****.**",
              emailTiendaSeleccionada, html)

    datosProductos = Productos.query.filter_by(tienda_id=id).all()
    datosProductos = list(
        map(lambda datosProductos: datosProductos.serialize(), datosProductos))

    return jsonify(datosProductos), 200
コード例 #3
0
ファイル: utils.py プロジェクト: soncco/thecafetin
def crear_factura(request, pedido, number):
  local = request.session['local']
  total = total_pedido_tipo(pedido, 'D')
  numero = number

  if Factura.objects.filter(pedido = pedido).count > 0:
    pass

  factura = Factura(local = local, pedido = pedido, total = total, numero = numero)
  factura.save()

  for detalle in pedido.pedidodetalle_set.all():
    if detalle.plato.tipo.recibo == 'D':
      plato = detalle.plato
      cantidad = detalle.cantidad
      unitario = detalle.plato.precioplato_set.get(anio = current_year()).precio
      subtotal = cantidad * unitario
      fd = FacturaDetalle(pertenece_a_factura = factura, plato = plato, cantidad = cantidad, unitario = unitario, subtotal = subtotal)
      fd.save()
コード例 #4
0
def checkout():
    if not request.is_json:
        return jsonify({"msg": "Missing JSON in request"}), 400

    ItemCompradoId = request.json.get('ItemProductoCompradoId', None)
    CantidaProductoComprado = request.json.get('CantidaProductoComprado', None)
    precioProductoSeleccionado = request.json.get('precioProductoSeleccionado',
                                                  None)
    usuario_id = request.json.get('usuario_id', None)
    totalFactura = request.json.get('totalFactura', None)
    usuarioActual = request.json.get('usuarioActual', None)
    email = User.query.filter_by(id=usuario_id).first().email
    usuario = User.query.filter_by(id=usuario_id).first()

    usua = Factura()
    usua.total = totalFactura
    usua.comprador = usuario
    db.session.add(usua)
    db.session.commit()

    #factura_id =Factura.query.filter_by(id = usuario_id).first()
    factura_id = Factura.query.order_by(Factura.id.desc()).first()
    productos = Productos.query.filter(Productos.id.in_(ItemCompradoId)).all()
    i = 0
    for prod in productos:
        usua = Detallefactura()
        usua.productos_comprados = prod
        usua.productos_facturados = factura_id
        usua.cantidad_producto_comprado = int(CantidaProductoComprado[i])
        db.session.add(usua)
        db.session.commit()
        i = i + 1

    listaDetalleFactura = Detallefactura.query.filter_by(
        facturaf_id=factura_id.id).all()
    listaDetalleFactura = list(
        map(lambda listaDetalleFactura: listaDetalleFactura.serialize(),
            listaDetalleFactura))

    html = render_template('email-compraProductos.html',
                           users=listaDetalleFactura)
    send_mail("Compra", "*****@*****.**", email, html)
    html = render_template('email-ProductosComprados.html',
                           usuarioactual=usuarioActual,
                           users=listaDetalleFactura)
    send_mail("Productos comprados", "*****@*****.**",
              "*****@*****.**", html)

    return jsonify({
        'msg':
        'Producto encargados exitamente en breve recibira un email con el detalle'
    }), 200
コード例 #5
0
ファイル: rest_api.py プロジェクト: rdorame/ParcialLabWeb2
 def factura_add(cls, request):
     try:
         token = jwt.decode(request.token, 'secret')  #CHECA EL TOKEN
         user = Usuarios.get_by_id(
             token['user_id']
         )  #obtiene el usuario para poder acceder a los metodos declarados en models.py en la seccion de
         myfactura = Factura()
         if myfactura.factura_m(
                 request, user.empresa_key
         ) == 0:  #llama a la funcion declarada en models.py en la seccion de USUARIOS
             codigo = 1
         else:
             codigo = -3
             #la funcion josue_m puede actualizar e insertar
             #depende de la ENTRADA de este endpoint method
         message = CodeMessage(code=codigo,
                               message='Factura registrada con exito')
     except jwt.DecodeError:
         message = CodeMessage(code=-2, message='Invalid token')
     except jwt.ExpiredSignatureError:
         message = CodeMessage(code=-1, message='Token expired')
     return message
コード例 #6
0
ファイル: rest_api.py プロジェクト: rdorame/ParcialLabWeb2
 def factura_update(cls, request):
     try:
         token = jwt.decode(request.token, 'secret')  #CHECA EL TOKEN
         user = Usuarios.get_by_id(
             token['user_id']
         )  #obtiene el usuario para poder acceder a los metodos declarados en models.py en la seccion de USUARIOS
         empresakey = ndb.Key(urlsafe=user.empresa_key.urlsafe()
                              )  #convierte el string dado a entityKey
         myfactura = Factura()
         if myfactura.factura_m(
                 request, empresakey
         ) == 0:  #llama a la funcion declarada en models.py en la seccion de USUARIOS
             codigo = 1
         else:
             codigo = -3
             #la funcion josue_m puede actualizar e insertar
             #depende de la ENTRADA de este endpoint method
         message = CodeMessage(
             code=1, message='Sus cambios han sido guardados exitosamente')
     except jwt.DecodeError:
         message = CodeMessage(code=-2, message='Invalid token')
     except jwt.ExpiredSignatureError:
         message = CodeMessage(code=-1, message='Token expired')
     return message
コード例 #7
0
ファイル: rest_api.py プロジェクト: rdorame/ParcialLabWeb2
    def factura_list(cls, request):
        try:
            token = jwt.decode(request.tokenint, 'secret')  #CHECA EL TOKEN
            user = Usuarios.get_by_id(
                token['user_id'])  #obtiene usuario dado el token
            lista = []  #crea lista para guardar contenido de la BD
            lstMessage = FacturaList(code=1)  #CREA el mensaje de salida
            lstBd = Factura.query().fetch()  #obtiene de la base de datos
            for i in lstBd:  #recorre la base de datos
                #inserta a la lista creada con los elementos que se necesiten de la base de datos
                #i.empresa_key.urlsafe() obtiene el entityKey

                lista.append(
                    FacturaUpdate(
                        token='',
                        entityKey=i.entityKey,
                        #empresa_key=i.empresa_key.urlsafe(),
                        tipoDePersona=i.tipoDePersona,
                        nombre=i.nombre,
                        idTicket=i.idTicket,
                        rfc=i.rfc,
                        pais=i.pais,
                        estado=i.estado,
                        municipio=i.municipio,
                        colonia=i.colonia,
                        cp=i.cp,
                        calle=i.calle,
                        numExt=i.numExt,
                        numInt=i.numInt,
                        email=i.email,
                        numFolio=i.numFolio,
                        fecha=i.fecha))
            lstMessage.data = lista  #ASIGNA a la salida la lista
            message = lstMessage
        except jwt.DecodeError:
            message = FacturaList(code=-1, data=[])
        except jwt.ExpiredSignatureError:
            message = FacturaList(code=-2, data=[])
        return message