def insert_frt_inventory(): inv_json_str = """ [{ "BRAND_CODE": "1201", "BRAND_NAME": "路虎", "CLASS_CODE": "120102", "CLASS_NAME": "Discovery [发现]", "CARTYPE_CODE": "120102003", "CARTYPE": "Discovery4 [发现4]", "SUBTYPE_CODE": "1201020030080", "SUBTYPE_NAME": "2015款 3.0T 手自一体 V6 SC HSE(2015)欧5", "COLOR_NAME": "圣托里尼黑", "COLOR_ATTRIBUTE": "车身色", "WAVEHOUSE_NAME": "本店仓库", "LOCATION_NAME": "1", "OUT_FACTORY_DATE": "0001-01-01T00:00:00", "VIN": "SALAN2V66FA765367", "INV_STATUS": "销售出库", "INVDAY": 190.0, "IN_PRICE": 878687.98, "MRSP": 928000.0, "REBATE_AMT": null }, { "BRAND_CODE": "1201", "BRAND_NAME": "路虎", "CLASS_CODE": "120102", "CLASS_NAME": "Discovery [发现]", "CARTYPE_CODE": "120102003", "CARTYPE": "Discovery4 [发现4]", "SUBTYPE_CODE": "1201020030078", "SUBTYPE_NAME": "2015款 3.0T 手自一体 SDV6 HSE(2015)欧5", "COLOR_NAME": "圣托里尼黑", "COLOR_ATTRIBUTE": "车身色", "WAVEHOUSE_NAME": "本店仓库", "LOCATION_NAME": "1", "OUT_FACTORY_DATE": "0001-01-01T00:00:00", "VIN": "SALAN2F6XFA762485", "INV_STATUS": "销售出库", "INVDAY": 214.0, "IN_PRICE": 841487.99, "MRSP": 888000.0, "REBATE_AMT": null }] """ json_data = json.loads(inv_json_str) from application.models.frtinv import FrtInventory sync_timestamp = int(time.time()) for item in json_data: inv = FrtInventory.from_data(item) inv.sync_timestamp = sync_timestamp inv.save() saved_data = FrtInventory.find_all_by_sync_timestamp( sync_timestamp) self.assertEqual(len(json_data), len(saved_data))
def publish_share_inventory(inventory_id): scope = request.args.get('scope', 'group') inv = FrtInventory.find(inventory_id) if inv is None: return abort(404) inv.shared = scope return inv
def get_frt_inventory_cartypes_stats(store_id): stockage = request.args.get('stockage', None) result = FrtInventory.get_cartypes_count(store_id, stockage) if current_app.config['FRT_DEMO']: for data in result: data['order_count'] = MOCK_ORDERS_COUNT.get( data['cartype_code'], 0) data['store_leads_count'] = MOCK_STORE_LEEDS_COUNT.get( data['cartype_code'], 0) data['group_leads_count'] = MOCK_GROUP_LEEDS_COUNT.get( data['cartype_code'], 0) data['net_leads_count'] = MOCK_NET_LEEDS_COUNT.get( data['cartype_code'], 0) return result
def get_frt_inventory_stockages_stats(store_id): return FrtInventory.get_stockages_count(store_id)
def get_frt_inventory_subtypes_stats(store_id): cartype_code = request.args.get('cartype_code', None) return FrtInventory.get_subtypes_count(store_id, cartype_code)
def get_frt_stores_inventories(store_id): return FrtInventory.find_all_store_inventories(store_id, **request.args.to_dict())
def get_frt_stores_inventories_lookups(store_id): type = request.args.get('type', 'store') return FrtInventory.get_lookups(store_id, type)
def sync_latest_store_inventory(store_id): # TODO transfer store_id to frt store_no # load store inventories params = [{"store_no": map_store(store_id), "carTypeNo": ""}] encrypted_params = encrypt_params(params) inventories = get_store_inventories(encrypted_params) timestamp = int(time.time()) inventories = filter(lambda inv: is_valid_inventory(inv), inventories) for inventory in inventories: frt_inv = FrtInventory.from_data(inventory) if current_app.config['FRT_DEMO']: if frt_inv.invday > 180: frt_inv.invday /= 5 if DEMO_STATUS_CONV.get(frt_inv.inv_status, None): frt_inv.inv_status = DEMO_STATUS_CONV[frt_inv.inv_status] if DEMO_SUBTYPE_MRSP_CONV.get(frt_inv.subtype_code, None): frt_inv.mrsp = DEMO_SUBTYPE_MRSP_CONV[frt_inv.subtype_code] frt_inv.store_id = store_id frt_inv.sync_timestamp = timestamp frt_inv.save() db.session.commit() cache.delete_memoized(FrtInventory.get_store_lookups_from_cache, FrtInventory, int(store_id)) # load group shared inventory brand_codes = FrtInventory.find_all_brand_code(store_id, None) if brand_codes: brand_codes = [c for c, in brand_codes] timestamp = time.time() shared_inventories_total = [] if current_app.config['FRT_DEMO']: brand_codes = DEMO_BRANDS for brand in brand_codes: shared_inv_params = [{"brand_code": brand}] shared_inv_encrypted_params = encrypt_params(shared_inv_params) shared_inventories = get_shared_inventories( shared_inv_encrypted_params) for shared_inventory in shared_inventories: frt_shared_inv = FrtSharedInventory.from_data(shared_inventory) frt_shared_inv.store_id = store_id frt_shared_inv.sync_timestamp = timestamp frt_shared_inv.save() shared_inventories_total.append(frt_shared_inv) db.session.commit() cache.delete_memoized(FrtSharedInventory.get_group_lookups_from_cache, FrtInventory, int(store_id)) return timestamp, inventories, shared_inventories_total