コード例 #1
0
ファイル: views.py プロジェクト: bskp/Stock
def create_transaction():
    ''' Creates a transaction for the user's shopping cart. Apparently, adding
    relations to transient transactions somehow automatically adds them to the
    current session. As we usually don't want to commit semi-complete
    transactions, DB modifications are prepent with session.rollback(). '''

    ta = Transaction()

    lending = session_or_empty('lend')
    buying = session_or_empty('buy')

    ta.group = session_or_empty('group')
    if ta.group == []:
        ta.group = 'int'

    for id in lending:
        item = Item.query.get(id)
        ta.lend[id] = Lend(item, lending[id])

    for id in buying:
        item = Item.query.get(id)
        ta.buy[id] = Buy(item, buying[id])

    ta.date_start = session_or_empty('date_start')
    ta.date_end = session_or_empty('date_end')
    ta.name = session_or_empty('name')
    ta.email = session_or_empty('email')
    ta.tel = session_or_empty('tel')

    g.ta = ta
コード例 #2
0
ファイル: dashboard.py プロジェクト: Ciwara/GCiss
    def click_item(self, row, column, *args):
        last_column = self.hheaders.__len__() - 1
        if column != last_column:
            return
        try:
            from ui.buy_show import BuyShowViewWidget

            self.parent.change_main_context(BuyShowViewWidget, buy=Buy.get(id=self.data[row][0]))
        except IndexError:
            pass
コード例 #3
0
ファイル: views.py プロジェクト: bskp/Stock
def item_buy(id):
    ta = g.ta

    if id in ta.buy:
        ta.buy[id].amount += 1

    else:
        it = Item.query.get(id)
        ta.buy[id] = Buy(it)

    #flash('%s eingepackt.'%id, 'success')
    return same()
コード例 #4
0
ファイル: views.py プロジェクト: honza/wishlist-app
def contribute(request, pk):
    item = get_object_or_404(Item, pk=pk)

    contribution = None
    buy = None
    if Buy.objects.filter(user=request.user, item=item).exists():
        buy = Buy.objects.get(user=request.user, item=item)
        contribution = buy.amount

    if request.method == 'POST':
        form = ContributionForm(request.POST)
        if form.is_valid():
            item.price = form.cleaned_data["estimation"]
            item.save()

            if not buy:
                buy = Buy()

            buy.user = request.user
            buy.item = item
            buy.amount = form.cleaned_data["contribution"]
            buy.save()
            messages.success(request, _("Saved"))
            return redirect('person-detail', item.user.username)
    else:
        form = ContributionForm(initial={
            'estimation': item.price, 'contribution': contribution})

    data = {
        'form': form,
        'item': item
    }
    return render(request, 'contribution.html', data)
コード例 #5
0
    def click_item(self, row, column, *args):
        last_column = self.hheaders.__len__() - 1
        if column != last_column:
            return

        from ui.buy_show import BuyShowViewWidget
        try:
            self.parent.open_dialog(BuyShowViewWidget,
                                    modal=True,
                                    opacity=100,
                                    table_p=self,
                                    buy=Buy.get(id=self.data[row][0]))
        except Exception as e:
            print(e)
コード例 #6
0
 def save_b(self):
     ''' add operation '''
     # entete de la facture
     if not self.table_buy.isvalid:
         return False
     owner = Owner.get(Owner.islog == True)
     date = str(self.date.text())
     values_t = self.table_buy.get_table_items()
     buy = Buy()
     # buy.date = datetime_
     buy.provd_or_clt = \
         ProviderOrClient.get_or_create(
             "Fournisseur", 000000, ProviderOrClient.FSEUR)
     buy.owner = owner
     try:
         buy.save()
         err = False
     except:
         raise
         raise_error("Erreur",
                     u"Impossible d'enregistrer l'entête de la facture")
         return False
     for name, qty, cost_buying, selling_price in values_t:
         rep = Report()
         rep.buy = buy
         rep.type_ = Report.E
         rep.store = 1
         rep.date = date_to_datetime(date)
         rep.product = Product.get(name=name)
         rep.qty = int(qty)
         rep.cost_buying = int(cost_buying)
         rep.selling_price = int(selling_price)
         try:
             rep.save()
         except Exception as e:
             print(e)
             err = True
     if err:
         buy.delete_instance()
         raise_error(
             "Erreur", u"Ce mouvement n'a pas pu etre "
             u"enregistré dans les rapports")
         return False
     else:
         self.parent.Notify(u"L'entrée des articles avec succès", "success")
     self.change_main_context(BuyShowViewWidget, buy=buy)
コード例 #7
0
ファイル: buy.py プロジェクト: Ciwara/GCiss
 def save_b(self):
     ''' add operation '''
     # entete de la facture
     if not self.table_buy.isvalid:
         return False
     owner = Owner.get(Owner.islog == True)
     date = str(self.date.text())
     values_t = self.table_buy.get_table_items()
     buy = Buy()
     # buy.date = datetime_
     buy.provd_or_clt = \
         ProviderOrClient.get_or_create(
             "Fournisseur", 000000, ProviderOrClient.FSEUR)
     buy.owner = owner
     try:
         buy.save()
         err = False
     except:
         raise
         raise_error(
             "Erreur", u"Impossible d'enregistrer l'entête de la facture")
         return False
     for name, qty, cost_buying, selling_price in values_t:
         rep = Report()
         rep.buy = buy
         rep.type_ = Report.E
         rep.store = 1
         rep.date = date_to_datetime(date)
         rep.product = Product.get(name=name)
         rep.qty = int(qty)
         rep.cost_buying = int(cost_buying)
         rep.selling_price = int(selling_price)
         try:
             rep.save()
         except Exception as e:
             print(e)
             err = True
     if err:
         buy.delete_instance()
         raise_error("Erreur", u"Ce mouvement n'a pas pu etre "
                     u"enregistré dans les rapports")
         return False
     else:
         self.parent.Notify(u"L'entrée des articles avec succès", "success")
     self.change_main_context(BuyShowViewWidget, buy=buy)
コード例 #8
0
def add_to_cart():
    if not session.is_logged():
        flash("Voce precisa estar logado para fazer isso")
        return redirect(url_for('auth.login'))
    else:
        product_id = int(request.form['product_id'])
        quant = int(request.form['quant'])

        if not product_id or not quant:
            flash("Informações faltantes")
            return redirect(url_for('store.index'))
        else:
            product: Product = Product.query.filter_by(
                id=product_id).first_or_404("Produto não encontrado")
            user: User = User.query.filter_by(
                id=session.get()).first_or_404("Usuario invalido")

            if product.stock <= 0 or quant > product.stock:
                flash("Quantidade do produto indisponivel")
                return redirect(url_for('store.product', id=product_id))
            else:
                buy: Buy = Buy.query.filter_by(user_id=session.get(),
                                               product_id=product_id).first()

                # Check if alredy have the buy with this product
                if buy is None:
                    buy = Buy(user, product, quant)
                    db.session.add(buy)
                else:
                    buy.n_items += quant

                user.n_items += quant
                user.subtotal += product.price * quant

                product.stock -= quant

                db.session.commit()

                flash("Produto adicionado com sucesso ao seu carinho")
                return redirect(url_for('store.showcase'))
コード例 #9
0
ファイル: dashboard.py プロジェクト: Ciwara/GCiss
 def set_data_for(self):
     self.data = [(buy.id, show_date(buy.date), "") for buy in Buy.select()]
コード例 #10
0
 def set_data_for(self):
     self.data = [(buy.id, buy.date, "") for buy in Buy.select()]