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()
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)
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)
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()
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()
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()
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)