def delete(self, id): try: object = session.query(Objects).filter(Objects.id == id).first() if not object: abort(404, message="Object {} doesn't exist".format(id)) session.delete(object) session.commit() return {}, 204 except Exception as e: session.rollback() abort(400, message="Error while remove Entity")
def delete(self, id): try: entity = session.query(MODEL).filter(MODEL.id == id).first() if not entity: abort(404, message=ENTITY_NAME+" {} doesn't exist".format(id)) session.delete(entity) session.commit() return {}, 204 except Exception as e: session.rollback() abort(400, message="Error while remove "+ENTITY_NAME)
def delete(self, id): try: setting = session.query(Settings).filter(Settings.id == id).first() if not setting: abort(404, message=" Settings {} doesn't exist".format(id)) session.delete(setting) session.commit() return {}, 204 except Exception as e: session.rollback() abort(400, message="Error while remove Settings")
def delete(self, id): try: client = session.query(Clients).filter(Clients.id == id).first() if not client: abort(404, message="Client type {} doesn't exist".format(id)) session.delete(client) session.commit() return {}, 204 except Exception as e: session.rollback() abort(400, message="Error while remove Client")
def delete(self, id): try: schema = session.query(Schemas).filter(Schemas.id == id).first() if not schema: abort(404, message="Client type {} doesn't exist".format(id)) session.delete(schema) session.commit() return {}, 204 except Exception as e: # db.db.init_session() session.rollback() abort(400, message="Error in remove schema".format(id))
def delete(self, id): try: user_role = session.query(UserRoles).filter( UserRoles.id == id).first() if not user_role: abort(404, message="User role {} doesn't exist".format(id)) session.delete(user_role) session.commit() return {}, 204 except Exception as e: session.rollback() abort(400, message="Error while remove user role")
def delete(self, id): try: user_login = session.query(UserLogins).filter( UserLogins.id == id).first() if not user_login: abort(404, message="User Login {} doesn't exist".format(id)) session.delete(user_login) session.commit() return {}, 204 except Exception as e: session.rollback() abort(400, message="Error remove user login")
def delete(self, id): try: client_info = session.query(ClientInfo).filter( ClientInfo.id == id).first() if not client_info: abort(404, message="Attachment {} doesn't exist".format(id)) session.delete(client_info) session.commit() return {}, 204 except Exception as e: session.rollback() abort(400, message="Error while remove Attachment ")
def delete(self, id): try: action_log = session.query(ActionLog).filter( ActionLog.id == id).first() if not action_log: abort(404, message="Action log {} doesn't exist".format(id)) session.delete(action_log) session.commit() return {}, 204 except Exception as e: session.rollback() abort(400, message="Error while remove Action Type")
def delete(self, id): try: attachment = session.query(Attachments).filter( Attachments.id == id).first() if not attachment: abort(404, message="Attachment {} doesn't exist".format(id)) session.delete(attachment) session.commit() return {}, 204 except Exception as e: session.rollback() abort(400, message="Error while remove Attachment ")
def delete(self, id): try: shared_group_object = session.query(SharedGroupObjects).filter( SharedGroupObjects.id == id).first() if not shared_group_object: abort( 404, message="Shared Group Object {} doesn't exist".format(id)) session.delete(shared_group_object) session.commit() return {}, 204 except Exception as e: session.rollback() abort(400, message="Error while remove Shared Group Object")
def delete(self, id): try: group_object_right = session.query(GroupObjectRights).filter( GroupObjectRights.id == id).first() if not group_object_right: abort( 404, message="Group Object Rights {} doesn't exist".format(id)) session.delete(group_object_right) session.commit() return {}, 204 except Exception as e: session.rollback() abort(400, message="Error while remove Group Object Rights ")
def delete(self, id): try: user_group = session.query(UserGroupSettings).filter( UserGroupSettings.id == id).first() if not user_group: abort( 404, message="User Group Settings {} doesn't exist".format(id)) session.delete(user_group) session.commit() return {}, 204 except Exception as e: session.rollback() abort(400, message="Error while remove User Group Settings")
def delete(self, id): try: entity = session.query(MODEL).filter(MODEL.id == id).first() if not entity: abort(404, message=ENTITY_NAME + " {} doesn't exist".format(id)) session.query(Products).filter( Products.partner_id == entity.id).update( {Products.partner_id: None}) session.commit() session.delete(entity) session.commit() session.query(Attachments).filter(Attachments.id.in_( entity.images)).delete(synchronize_session=False) session.commit() return {}, 204 except Exception as e: session.rollback() abort(400, message="Error while remove " + ENTITY_NAME)
def post(self): try: action_type = 'POST' json_data = request.get_json(force=True) user_cart_id = json_data['id'] cart_positions = json_data['cart_positions'] # user_action_logging.log_user_actions(ROUTE, user_id, action_type) db_cart_positions = session.query(UserCartPositions).filter( UserCartPositions.user_cart_id == user_cart_id).order_by( desc(UserCartPositions.id)).all() remove_cart_position_indexes = [] #проверяем все ли элементы корзины из реальной БД есть в той, что пришла for db_cart_position in db_cart_positions: founded = False for cart_position in cart_positions: m_cart_position_id = cart_position['id'] if (m_cart_position_id == db_cart_position.id): founded = True break if (founded == False): remove_cart_position_indexes.append(db_cart_position.id) #удаляем все позиции которые были удалены на стороне клиента for remove_cart_position_index in remove_cart_position_indexes: entity = session.query(UserCartPositions).filter( UserCartPositions.id == remove_cart_position_index).first() if not entity: continue session.delete(entity) session.commit() total_bonuses = 0 for position in cart_positions: position_args = {} position_args['id'] = position['id'] position_args['count'] = position['count'] position_args['alt_count'] = position['alt_count'] position_args['description'] = position['description'] position_args['need_invoice'] = position['need_invoice'] db_position = session.query(UserCartPositions).filter( UserCartPositions.id == position_args['id']).first() if (not db_position): continue db_transformer.transform_update_params(db_position, position_args) session.add(db_position) session.commit() user_cart = session.query(UserCarts).filter( UserCarts.id == user_cart_id).first() if not user_cart: abort(400, message='Ошибка получения данных. Данные не найдены') user_cart_positions = session.query(UserCartPositions).filter( UserCartPositions.user_cart_id == user_cart.id).all() # for cart_position in cart_positions: # cart_position user_cart.cart_positions = user_cart_positions total_sum = 0 total_sum_without_discount = 0 amount_sum = 0 currency_id = -1 for cart_position in user_cart_positions: count = cart_position.count alt_count = cart_position.alt_count cart_position.bonus = 0 product = session.query(Products).filter( Products.id == cart_position.product_id).first() if (currency_id == -1): currency_id = product.currency_id if (not product): continue if (product.alt_discount_amount == None): product.alt_discount_amount = 0 if (product.alt_amount == None): product.alt_amount = 0 cart_position.bonuses = 0 if (cart_position.count != 0): bonus = product.amount * (product.bonus_percent / 100) * cart_position.count bonus += product.alt_amount * ( product.bonus_percent / 100) * cart_position.alt_count bonus = round(bonus, 2) if (bonus != None): cart_position.bonuses = bonus total_bonuses += bonus single_amount = 0 if (product.is_discount_product == True): discount_amount = product.discount_amount alt_discount_amount = product.alt_discount_amount if (discount_amount == 0): discount_amount = product.amount if (alt_discount_amount == None or alt_discount_amount == 0): alt_discount_amount = product.alt_amount if (discount_amount == 0): discount_amount = product.amount single_amount = round(discount_amount * count, 2) alt_single_amount = round(alt_discount_amount * alt_count, 2) total_sum += single_amount total_sum += alt_single_amount total_sum_without_discount += round( product.amount * count, 2) total_sum_without_discount += round( product.alt_amount * alt_count, 2) delta = product.amount - discount_amount alt_delta = product.alt_amount - alt_discount_amount amount_sum += round(delta * count, 2) amount_sum += round(alt_delta * alt_count, 2) else: total_sum += round(product.amount * count, 2) total_sum += round(product.alt_amount * alt_count, 2) total_sum_without_discount += round( product.amount * count, 2) total_sum_without_discount += round( product.alt_amount * alt_count, 2) economy_delta = total_sum_without_discount - amount_sum economy_percent = round( 100 * (economy_delta / total_sum_without_discount), 2) user_cart.total_amount = total_sum user_cart.total_amount_without_discount = total_sum_without_discount user_cart.discount_amount = amount_sum user_cart.economy_delta = economy_delta user_cart.economy_percent = economy_percent user_cart.products_count = len(user_cart_positions) user_cart.currency_data = session.query(CurrencyCatalog).filter( CurrencyCatalog.id == currency_id).first() user_cart.bonuses_amount = round(total_bonuses, 2) return user_cart except Exception as e: if (hasattr(e, 'data')): if (e.data != None and "message" in e.data): abort(400, message=e.data["message"]) abort(400, message="Неопознанная ошибка")
def get(self): try: action_type = 'GET' parser = reqparse.RequestParser() parser.add_argument('user_id') parser.add_argument('user_cart_id') parser.add_argument('product_id') parser.add_argument('count') parser.add_argument('alt_count') args = parser.parse_args() if (len(args) == 0): abort(400, message='Arguments not found') user_id = int(args['user_id']) user_cart_id = int(args['user_cart_id']) product_id = int(args['product_id']) count = float(args['count']) alt_count = float(args['alt_count']) if (alt_count == -1): alt_count = 0 user_action_logging.log_user_actions(ROUTE, user_id, action_type) user_cart = {} if (user_cart_id == -1): user_cart_args = {} user_cart_args["user_id"] = user_id user_cart_entity = UserCarts(user_cart_args) session.add(user_cart_entity) session.commit() user_cart = user_cart_entity else: user_cart = session.query(UserCarts).filter( UserCarts.id == user_cart_id).first() if (not user_cart): user_cart_args = {} user_cart_args["user_id"] = user_id user_cart_entity = UserCarts(user_cart_args) session.add(user_cart_entity) session.commit() user_cart = user_cart_entity #check if cart positions contains current product check_user_cart_positions = session.query( UserCartPositions).filter( and_(UserCartPositions.user_cart_id == user_cart.id, UserCartPositions.product_id == product_id)).first() if (not check_user_cart_positions): user_cart_position_args = {} user_cart_position_args['product_id'] = product_id user_cart_position_args['user_cart_id'] = user_cart.id user_cart_position_args['count'] = count user_cart_position_args['alt_count'] = alt_count user_cart_position_args['temp_cart_uid'] = str( uuid.uuid4().hex) user_cart_position_args['need_invoice'] = False user_cart_position_entity = UserCartPositions( user_cart_position_args) session.add(user_cart_position_entity) session.commit() else: if (count > 0 or alt_count > 0): check_user_cart_positions.count = count check_user_cart_positions.alt_count = alt_count session.add(check_user_cart_positions) session.commit() else: session.delete(check_user_cart_positions) session.commit() #calculte total sum user_cart_positions = session.query(UserCartPositions).filter( UserCartPositions.user_cart_id == user_cart.id).all() total_sum = 0 total_sum_without_discount = 0 amount_sum = 0 currency_id = -1 for cart_position in user_cart_positions: count = cart_position.count alt_count = cart_position.alt_count if (count == 0 and alt_count == 0): continue product = session.query(Products).filter( Products.id == cart_position.product_id).first() if (currency_id == -1): currency_id = product.currency_id if (product.alt_discount_amount == None): product.alt_discount_amount = 0 if (product.alt_amount == None): product.alt_amount = 0 if (not product): continue single_amount = 0 if (product.is_discount_product == True): discount_amount = product.discount_amount alt_discount_amount = product.alt_discount_amount if (discount_amount == 0): discount_amount = product.amount if (alt_discount_amount == None or alt_discount_amount == 0): alt_discount_amount = product.alt_amount if (discount_amount == 0): discount_amount = product.amount single_amount = round(discount_amount * count, 2) alt_single_amount = round(alt_discount_amount * alt_count, 2) total_sum += single_amount total_sum += alt_single_amount total_sum_without_discount += round( product.amount * count, 2) total_sum_without_discount += round( product.alt_amount * alt_count, 2) delta = product.amount - discount_amount alt_delta = product.alt_amount - alt_discount_amount amount_sum += round(delta * count, 2) amount_sum += round(alt_delta * alt_count, 2) else: total_sum += round(product.amount * count, 2) total_sum += round(product.alt_amount * alt_count, 2) total_sum_without_discount += round( product.amount * count, 2) total_sum_without_discount += round( product.alt_amount * alt_count, 2) economy_delta = total_sum_without_discount - amount_sum economy_percent = 0 if (total_sum_without_discount != 0): economy_percent = round( 100 * (economy_delta / total_sum_without_discount), 2) user_cart.total_amount = total_sum user_cart.total_amount_without_discount = total_sum_without_discount user_cart.discount_amount = amount_sum user_cart.economy_delta = economy_delta user_cart.economy_percent = economy_percent user_cart.products_count = len(user_cart_positions) user_cart.currency_data = session.query(CurrencyCatalog).filter( CurrencyCatalog.id == currency_id).first() return user_cart except Exception as e: session.rollback() if (hasattr(e, 'data')): if (e.data != None and "message" in e.data): abort(400, message=e.data["message"]) abort(400, message="Неопознанная ошибка")