Ejemplo n.º 1
0
def get_token():
    if g.token_used:
        raise Unauthorized("请使用用户名和密码获取 token。")
    return success(
        token=g.current_user.generate_auth_token(),
        username=g.current_user.name,
        role=g.current_user.role.name)
Ejemplo n.º 2
0
 def add(self, **request):
     total_price = float(request['unit_price']) * float(request['quantity'])
     self.client_id = request['client_id']
     self.store_id = request.get('store_id', 1)
     self.goods = request['goods']
     self.quantity = request['quantity']
     self.unit_price = request['unit_price']
     self.unit = request['unit']
     self.total_price = total_price
     self.description = ''
     self.analyze = 0
     self.visible = 1
     general = IncomeGeneral.query.filter_by(
         client=self.client, store_id=self.store_id).first()
     if not general:
         general = IncomeGeneral()
         general.store_id = self.store_id
         general.client_id = self.client_id
         general.total = self.total_price
         general.debt = self.total_price
     else:
         general.total += self.total_price
         general.debt += self.total_price
     general.visible = True
     db.session.add(self)
     db.session.add(general)
     db.session.commit()
     return success()
Ejemplo n.º 3
0
 def update(**request):
     required = ["client_id"]
     check_params(request, required)
     client_id = request.get('client_id')
     info = ClientInfo.query.filter_by(id=client_id).first()
     client_name = request.get("client_name")
     if info is None:
         raise NotFound('客户信息不存在。')
     if client_name:
         exist = ClientInfo.query.filter_by(name=client_name,
                                            store=info.store).first()
         if exist:
             raise ResourceConflic("该姓名已经存在。")
         else:
             info.name = client_name
     wechat = request.get('wechat')
     description = request.get('description')
     phone = request.get('phone')
     if wechat:
         info.wechat = wechat
     if description:
         info.description = description
     if phone:
         info.phone = phone
     db.session.commit()
     return success()
Ejemplo n.º 4
0
 def update_passsword(store_id, user_id, **request):
     required = ['password']
     check_params(request, required)
     user = User.query.filter_by(id=user_id, store_id=store_id).first()
     if user:
         user.password = generate_password_hash(request['password'])
     db.session.add(user)
     db.session.commit()
     return success()
Ejemplo n.º 5
0
 def add(**request):
     general = IncomeGeneral()
     general.store_id = request.get('store_id', 1)
     general.client_id = request['client_id']
     general.total = request['total']
     general.debt = request['total']
     general.visible = True
     db.session.add(general)
     db.session.commit()
     return success()
Ejemplo n.º 6
0
 def reset_password(store_id, **request):
     required = ["user_id"]
     check_params(request, required)
     user = User.query.filter_by(id=request['user_id'],
                                 store_id=store_id).first()
     if user:
         new_pass = gen_random_password()
         user.password = generate_password_hash(new_pass)
     db.session.commit()
     return success(data=new_pass)
Ejemplo n.º 7
0
    def delete(**request):
        general_id = request['general_id']
        general = IncomeGeneral.query.filter_by(id=general_id).first()
        if general.count_details() != 0:
            current_app.logger.info(general.count_details())
            raise NotAllowed("尚有未支付的订单,不能删除。")

        db.session.delete(general)
        db.session.commit()
        return success()
Ejemplo n.º 8
0
    def delete(**request):
        required = ["client_id"]
        check_params(request, required)
        client_id = request["client_id"]
        if IncomeGeneral.query.filter_by(client=client_id).count():
            raise NotAllowed("该客户存在账单,不能删除。")

        info = ClientInfo.query.filter_by(id=client_id).first()
        db.session.delete(info)
        db.session.commit()
        return success()
Ejemplo n.º 9
0
 def update_payed(**request):
     detail = IncomeDetails.query.filter_by(id=request['detail_id']).first()
     if detail:
         detail.visible = False
         general = IncomeGeneral.query.filter_by(
             client=detail.client, store=detail.store_id).first()
         payed = general.payed + detail.total_price
         debt = general.total - payed
         general.debt = debt
         general.payed = payed
         db.session.commit()
     return success()
Ejemplo n.º 10
0
 def delete(store_id, **request):
     required = ["user_id"]
     check_params(request, required)
     user = User.query.filter_by(id=request['user_id'],
                                 store_id=store_id).first()
     if not user:
         raise NotFound()
     if user.role.name == 'Administrator':
         raise NotAllowed("不能删除 admin 用户。")
     db.session.delete(user)
     db.session.commit()
     return success()
Ejemplo n.º 11
0
 def update(store_id, **request):
     required = ["user_id"]
     check_params(request, required)
     user = User.query.filter_by(id=request['user_id'],
                                 store_id=store_id).first()
     if user:
         user.name = request.get('name', user.name)
         user.phone = request.get('phone', user.phone)
         user.role_id = request.get('role_id', user.role_id)
         if user.role.name == 'Administrator':
             raise NotAllowed("不能更改角色为管理员。")
         db.session.commit()
     return success()
Ejemplo n.º 12
0
 def add(store_id, **request):
     required = ["role_id", "name", "password", "phone"]
     check_params(request, required)
     user = User()
     user.store_id = store_id
     user.role_id = request['role_id']
     user.name = request['name']
     user.password = generate_password_hash(request['password'])
     user.phone = request['phone']
     user.wechat = request.get('wechat', '')
     db.session.add(user)
     db.session.commit()
     return success(data=user.get_dict(ignore={'password'}))
Ejemplo n.º 13
0
 def update(**request):
     general_id = request['general_id']
     general = IncomeGeneral.query.filter_by(id=general_id).first()
     if general:
         debt = request.get('debt', general.debt)
         total = request.get('total', general.total)
         payed = total - debt
         payed = payed if payed > 0 else 0
         general.debt = debt
         general.total = total
         general.payed = payed
         db.session.add(general)
         db.session.commit()
     return success()
Ejemplo n.º 14
0
 def delete(**request):
     detail_id = request["detail_id"]
     detail = IncomeDetails.query.filter_by(id=detail_id).first()
     if detail:
         general = IncomeGeneral.query.filter_by(
             store=detail.store, client=detail.client).first()
         total = general.total - detail.total_price
         debt = total - general.payed
         if general.debt <= 0:
             general.visible = False
         general.total = total if total >= 0 else 0
         general.debt = debt if debt >= 0 else 0
         db.session.delete(detail)
         db.session.commit()
     return success()
Ejemplo n.º 15
0
 def add(**request):
     required = ["client_name", "store_id"]
     check_params(request, required)
     stroe_id = request['store_id']
     name = request['client_name']
     exist = ClientInfo.query.filter_by(name=name, store=stroe_id).first()
     if exist:
         raise ResourceConflic("该姓名已经存在。")
     info = ClientInfo()
     info.store_id = stroe_id
     info.name = name
     info.description = request.get('description', '')
     info.phone = request.get('phone', '')
     info.wechat = request.get('wechat', '')
     db.session.add(info)
     db.session.commit()
     return success()
Ejemplo n.º 16
0
    def update(**request):
        detail_id = request['detail_id']
        detail = IncomeDetails.query.filter_by(id=detail_id).first()
        if detail:
            total_price = float(request['unit_price']) * float(
                request['quantity'])
            detal = total_price - detail.total_price
            detail.goods = request["goods"]
            detail.quantity = request["quantity"]
            detail.unit_price = request["unit_price"]
            detail.unit = request["unit"]
            detail.total_price = total_price

            general = IncomeGeneral.query.filter_by(
                store=detail.store, client=detail.client).first()
            total = general.total + detal
            debt = total - general.payed
            if general.debt <= 0:
                general.visible = False
            general.total = total if total >= 0 else 0
            general.debt = debt if debt >= 0 else 0
            db.session.commit()
        return success()
Ejemplo n.º 17
0
def logout():
    g.current_user = None
    return success()
Ejemplo n.º 18
0
def authentication():
    return success()