1
1unknown
plain_text
a year ago
4.1 kB
1
Indexable
Never
# список заказов в ЛК # преобразование заказов из ретейла в формат, необходимый для фронта def orders_serialize(orders): serialized_orders = [] for order in orders: code = order["delivery"].get("code") address = order["delivery"].get("address", {}) city = address.get("city", "") if order.get("orderMethod") == "newsletter": address = {"city": "Подписка на рассылку", "text": ""} else: if not address.get("street"): if order.get("shipmentStore"): if not city: store = Store.objects.filter(code=order["shipmentStore"]).first() if store: if store.city: city = store.city address = { "city": city, "text": "Розничный покупатель", "street": "Розничный покупатель", } else: address = { "city": city, "text": "Самовывоз", "street": "Самовывоз", } items = [] for item in order["items"]: if item.get("prices"): for price in item["prices"]: i = { "name": item["offer"]["name"], "quantity": price["quantity"], "price": price["price"], } items.append(i) else: i = { "name": item["offer"]["name"], "quantity": item["quantity"], "price": item["initialPrice"], } items.append(i) status_code = order.get("status", "") status = OrderStatus.objects.filter(code=status_code).first() if status: status = status.get_response() else: status = OrderStatus.dummy_response(status_code) number1c = "" if order.get("customFields"): if isinstance(order["customFields"], dict): order["customFields"].get("number1c", "") else: capture_message(f"Неизвестный customFields - {order['customFields']}") orderMethod = OrderMethod.objects.filter(code=order["orderMethod"]).first() if orderMethod: orderMethod = orderMethod.get_response()['name'] else: orderMethod = order["orderMethod"] data = { "id": order["id"], "paid": order["prepaySum"] == order["totalSumm"], "site": order.get("site"), "status": status, "number": order.get("number"), "number1c": number1c, "order_method": orderMethod, "lastName": order.get("lastName"), "firstName": order.get("firstName"), "patronymic": order.get("patronymic"), "summ": order.get("summ"), "totalSumm": order.get("totalSumm"), "partnerSumm": int(order.get("totalSumm", 0) * 0.5), "phone": order.get("phone"), "city": order["delivery"].get("city"), "createdAt": order["createdAt"], "storehouse": order.get("shipmentStore", ""), "customerCity": order.get("customer", {}).get("address", {}).get("city"), "contactCity": order.get("contact", {}).get("address", {}).get("city"), "companyCity": order.get("company", {}).get("address", {}).get("city"), "delivery": { "code": code, "address": address, "date": order["delivery"].get("date"), "time": order["delivery"].get("time"), }, "items": items, } serialized_orders.append(data) return serialized_orders