Exemple #1
0
 def update_goods(self, firm):
     user = self.current_user
     station = self.current_station
     goods_id_list = self.args.get("goods_id_list", list())
     valid, message, goods_list = self.validate_goods_id_list(goods_id_list)
     if not valid:
         return self.send_fail(message)
     firm_goods_list = self.session.query(models.FirmGoods, models.Goods.name)\
                                   .join(models.Goods, models.Goods.id == models.FirmGoods.goods_id)\
                                   .filter(models.FirmGoods.firm_id == firm.id,
                                           models.FirmGoods.status == 0,
                                           models.Goods.status == 0)\
                                   .all()
     # 删除当前供货商的商品
     for firm_goods, goods_name in firm_goods_list:
         firm_goods.status = -1
     # 添加新的供应货品
     for goods_id in goods_id_list:
         firm_goods = models.FirmGoods(
             goods_id=goods_id,
             firm_id=firm.id
         )
         self.session.add(firm_goods)
     # 添加日志
     last_goods_name = [goods_name for firm_goods, goods_name in firm_goods_list]
     goods_name = [goods.name for goods in goods_list]
     modify_content = str()
     if goods_name != last_goods_name:
         modify_content += "修改供应货品({0}→{1})".format(last_goods_name, goods_name)
     if modify_content:
         firm_log.delay(user.id, station.id, 3, firm.name, modify_content)
     self.session.commit()
     return self.send_success()
Exemple #2
0
 def add_modify_account_log(self, account, account_type, account_name, account_num, firm_name):
     account_type_dict = {0: "未知", 1: "支付宝账户", 2: "对公账户", 3: "私人账户"}
     account_type = account_type_dict.get(account_type, "未知")
     modify_content = "{0}({1}),".format(account_type, account.account_num)
     if account_name != account.account_name:
         modify_content += "名称更改({0}→{1}),".format(account.account_name, account_name)
     if account_num != account.account_num:
         modify_content += "账号更改({0}→{1})".format(account.account_num, account_num)
     if modify_content != "{0}({1}),".format(account_type, account.account_num):
         firm_log.delay(self.current_user.id, self.current_station.id, 3, firm_name, modify_content)
Exemple #3
0
 def add_modify_log(self, firm, name, phone, remarks):
     user = self.current_user
     station = self.current_station
     modify_content = str()
     if name != firm.name:
         modify_content += "姓名更改({0}→{1}),".format(firm.name, name)
     if phone != firm.phone:
         modify_content += "手机号更改({0}→{1}),".format(firm.phone, phone)
     if remarks != firm.remarks:
         modify_content += "备注更改({0}→{1})".format(firm.remarks, remarks)
     if modify_content:
         firm_log.delay(user.id, station.id, 3, firm.name, modify_content=modify_content)
Exemple #4
0
    def delete(self, firm_id, account_id):
        firm = models.Firm.get_by_firm_id(self.session, firm_id, self.current_station.id)
        if not firm:
            return self.send_fail("没有找到对应的供货商")
        account = models.FirmPaymentAccount.get_by_id(self.session, account_id)
        if not account or account.status != 0:
            return self.send_fail("没有找到对应的供货商支付账号")

        account.status = -1
        self.session.commit()
        # 添加日志
        account_type_dict = {0: "未知", 1: "支付宝账户", 2: "对公账户", 3: "私人账户"}
        account_type = account_type_dict.get(account.account_type, "未知")
        modify_content = "删除{0}({1})".format(account_type, account.account_num)
        firm_log.delay(self.current_user.id, self.current_station.id, 3, firm.name, modify_content)
        return self.send_success()
Exemple #5
0
    def post(self, firm_id):
        user = self.current_user
        station = self.current_station
        account_type = self.args["account_type"]
        account_name = self.args["account_name"]
        account_num = self.args["account_num"]
        branch_bank_no = self.args.get("branch_bank_no", "")

        if not account_num:
            return self.send_fail("支付账号不能为空")
        if not account_name:
            return self.send_fail("账户名不能为空")
        if account_type in [2, 3]:
            if not branch_bank_no:
                return self.send_fail("请选择开户银行")

        firm = models.Firm.get_by_firm_id(self.session, firm_id, self.current_station.id)
        if not firm:
            return self.send_fail("没有找到对应的供货商")

        accounts_count = self.session.query(func.count(models.FirmPaymentAccount.id)) \
            .filter(models.FirmPaymentAccount.firm_id == firm_id,
                    models.FirmPaymentAccount.status == 0) \
            .scalar()
        if accounts_count >= 4:
            return self.send_fail("每个供货商最多添加 4 个支付账号")

        account = models.FirmPaymentAccount(
            firm_id=firm_id,
            account_type=account_type,
            account_name=account_name,
            account_num=account_num,
            branch_bank_no=branch_bank_no,
            station_id=station.id,
            creator_id=user.id,
        )
        self.session.add(account)
        self.session.commit()
        # 添加日志
        account_type_dict = {0: "未知", 1: "支付宝账户", 2: "对公账户", 3: "私人账户"}
        account_type = account_type_dict.get(account.account_type, "未知")
        modify_content = "添加{0}({1})".format(account_type, account.account_num)
        firm_log.delay(user.id, station.id, 3, firm.name, modify_content)
        return self.send_success()
Exemple #6
0
 def delete(self, firm_id):
     user = self.current_user
     station = self.current_station
     firm = models.Firm.get_by_firm_id(self.session, firm_id, station_id=station.id)
     if not firm:
         return self.send_fail("供货商不存在")
     firm.status = -1
     # 把商品的供货商也进行逻辑删除
     firm_goods_list = self.session.query(models.FirmGoods)\
                                   .join(models.Firm, models.FirmGoods.firm_id == models.Firm.id)\
                                   .filter(models.Firm.id == firm_id,
                                           models.FirmGoods.status == 0)\
                                   .all()
     for firm_goods in firm_goods_list:
         firm_goods.status = -1
     self.session.commit()
     # 添加日志
     firm_log.delay(user.id, station.id, 2, firm.name)
     return self.send_success()
Exemple #7
0
 def post(self):
     user = self.current_user
     station = self.current_station
     name = self.args["name"].strip()
     phone = self.args.get("phone", "").strip()
     remarks = self.args.get("remarks", "").strip()
     valid, message = self.validate_name_and_phone(name, phone, remarks)
     if not valid:
         return self.send_fail(message)
     new_firm = models.Firm(
         name=name,
         phone=phone,
         remarks=remarks,
         creator_id=user.id,
         station_id=station.id
     )
     self.session.add(new_firm)
     self.session.commit()
     firm_dict = new_firm.to_dict()
     # 添加日志
     firm_log.delay(user.id, station.id, 1, new_firm.name)
     return self.send_success(firm_dict=firm_dict)