def decline_deal(deal_id, comment, user_id): update_obj = { BFA.FESTIVE_APPROVEMENT_ALIAS: BFM.FESTIVE_APPROVEMENT_NO, BFA.FESTIVE_DECLINE_COMMENT_ALIAS: comment, BFA.FESTIVE_DECLINE_USER_ALIAS: user_id } BW.update_deal(deal_id, update_obj)
def update_deal_image(user: Operator): photos_list = user.equip.encode_deal_photos() deal_data = user.deal_data # switch to previous stage first in case of repeat equip - to trigger robots properly if user.equip.repeating: BW.update_deal(deal_data.deal_id, {DEAL_STAGE_ALIAS: DEAL_PROCESSED_1C_STATUS_ID}) update_obj = {DEAL_SMALL_PHOTO_ALIAS: [], DEAL_BIG_PHOTO_ALIAS: [], DEAL_STAGE_ALIAS: DEAL_IS_EQUIPPED_STATUS_ID, DEAL_CLIENT_URL_ALIAS: user.equip.digest, DEAL_EQUIPER_ID_ALIAS: user.bitrix_user_id, DEAL_CHECKLIST_ALIAS: {'fileData': [user.deal_data.photo_name, user.deal_data.photo_data]} } for photo in photos_list: update_obj[DEAL_SMALL_PHOTO_ALIAS].append({'fileData': [photo.name_small, photo.data_small]}) update_obj[DEAL_BIG_PHOTO_ALIAS].append({'fileData': [photo.name_big, photo.data_big]}) postcards_list = user.equip.encode_deal_postcards() if postcards_list: update_obj[DEAL_POSTCARD_PHOTO_ALIAS] = [] for photo in postcards_list: update_obj[DEAL_POSTCARD_PHOTO_ALIAS].append({'fileData': [photo.name_big, photo.data_big]}) BW.update_deal(deal_data.deal_id, update_obj)
def reapprove_deal(deal_id): update_obj = { BFA.FESTIVE_APPROVEMENT_ALIAS: BFM.FESTIVE_APPROVEMENT_NOT_SELECTED, BFA.FESTIVE_DECLINE_COMMENT_ALIAS: None, BFA.FESTIVE_DECLINE_USER_ALIAS: None } BW.update_deal(deal_id, update_obj)
def send_deal(user: Operator): update_obj = { DEAL_STAGE_ALIAS: BFM.DEAL_IS_IN_DELIVERY_STATUS_ID, DEAL_COURIER_NEW_ALIAS: user.deal_data.courier_id, DEAL_SENDER_ID_ALIAS: user.bitrix_user_id } BW.update_deal(user.deal_data.deal_id, update_obj)
def update_deal_waiting_for_supply(user: Operator): deal_id = user.deal_data.deal_id update_obj = { DEAL_ORDER_RESERVE_ALIAS: [], DEAL_STAGE_ALIAS: DEAL_PROCESSED_WAITING_FOR_SUPPLY_STATUS_ID, DEAL_ORDER_RESERVE_DESC_ALIAS: None, DEAL_ORDER_HAS_RESERVE_ALIAS: DEAL_HAS_RESERVE_NO, DEAL_SUPPLY_DATETIME_ALIAS: user.deal_data.supply_datetime, DEAL_RESERVE_HANDLER_ID_ALIAS: user.bitrix_user_id } BW.update_deal(deal_id, update_obj)
def return_to_warehouse(user): deal_id = user.deal_data.deal_id # get stage, check it's actual actual_stage = BW.get_deal_stage(deal_id) if actual_stage != BFM.DEAL_IS_IN_DELIVERY_STATUS_ID: return BW.BW_WRONG_STAGE fields = { DEAL_STAGE_ALIAS: BFM.DEAL_APPROVED_STATUS_ID, DEAL_WAREHOUSE_RETURNED: BFM.DEAL_IS_RETURNED_TO_WAREHOUSE_YES, DEAL_WAREHOUSE_RETURN_REASON: user.data.warehouse_return_reason } BW.update_deal(deal_id, fields) return BW.BW_OK
def update_deal_by_client(deal_id, data): try: comment = data.get(REQUEST_COMMENT_ALIAS) approved = data.get(REQUEST_APPROVED_ALIAS) call_me_back = data.get(REQUEST_CALLMEBACK_ALIAS) fields = { DEAL_CLIENT_COMMENT_ALIAS: comment, DEAL_STAGE_ALIAS: DEAL_APPROVED_STATUS_ID if approved else DEAL_UNAPPROVED_STATUS_ID, DEAL_CLIENT_CALLMEBACK_ALIAS: call_me_back, DEAL_COMMENT_APPROVED_ALIAS: DEAL_COMMENT_APPROVED_STUB if approved else None } BW.update_deal(deal_id, fields) return True except Exception as e: logger.error('Error updating client deal info: %s', e) return False
def update_deal_no_reserve(user: Operator): deal_id = user.deal_data.deal_id photos_list = user.reserve.encode_deal_photos() update_obj = { DEAL_ORDER_RESERVE_ALIAS: [{ 'fileData': [photos_list[0].name_big, photos_list[0].data_big] }], DEAL_STAGE_ALIAS: DEAL_PROCESSED_ON_HOLD_STATUS_ID, DEAL_ORDER_RESERVE_DESC_ALIAS: Txt.NO_RESERVE_NEEDED_STUB, DEAL_ORDER_HAS_RESERVE_ALIAS: DEAL_HAS_RESERVE_NO, DEAL_RESERVE_HANDLER_ID_ALIAS: user.bitrix_user_id, DEAL_ORDER_RESERVE_NOT_NEEDED_APPROVE: DEAL_ORDER_RESERVE_NOT_NEEDED_APPROVE } BW.update_deal(deal_id, update_obj)
def finish_deal(user): deal_id = user.deal_data.deal_id # get stage, check it's actual actual_stage = BW.get_deal_stage(deal_id) if actual_stage != BFM.DEAL_IS_IN_DELIVERY_STATUS_ID: return BW.BW_WRONG_STAGE fields = { DEAL_STAGE_ALIAS: BFM.DEAL_SUCCESSFUL_STATUS_ID, DEAL_WAREHOUSE_RETURNED: BFM.DEAL_IS_RETURNED_TO_WAREHOUSE_NO } if user.data.late_reason is None: fields[DEAL_IS_LATE_ALIAS] = BFM.DEAL_IS_LATE_NO else: fields[DEAL_IS_LATE_ALIAS] = BFM.DEAL_IS_LATE_YES fields[DEAL_IS_LATE_REASON_ALIAS] = user.data.late_reason BW.update_deal(deal_id, fields) return BW.BW_OK
def update_deal_reserve(user: Operator): deal_id = user.deal_data.deal_id photos_list = user.reserve.encode_deal_photos() update_obj = { DEAL_ORDER_RESERVE_ALIAS: [], DEAL_STAGE_ALIAS: DEAL_PROCESSED_ON_HOLD_STATUS_ID, DEAL_ORDER_RESERVE_DESC_ALIAS: user.deal_data.reserve_desc, DEAL_ORDER_HAS_RESERVE_ALIAS: DEAL_HAS_RESERVE_YES, DEAL_RESERVE_HANDLER_ID_ALIAS: user.bitrix_user_id, DEAL_ORDER_RESERVE_NOT_NEEDED_APPROVE: DEAL_ORDER_RESERVE_NOT_NEEDED_APPROVE } for photo in photos_list: update_obj[DEAL_ORDER_RESERVE_ALIAS].append( {'fileData': [photo.name_big, photo.data_big]}) BW.update_deal(deal_id, update_obj)
def update_deal_florist(user: Operator): update_obj = {DEAL_STAGE_ALIAS: BFM.DEAL_FLORIST_STATUS_ID, DEAL_FLORIST_NEW_ALIAS: user.deal_data.florist_id, DEAL_FLORIST_SETTER_ID_ALIAS: user.bitrix_user_id} BW.update_deal(user.deal_data.deal_id, update_obj)
def update_deal_courier(user: Operator): update_obj = {DEAL_COURIER_NEW_ALIAS: user.deal_data.courier_id} BW.update_deal(user.deal_data.deal_id, update_obj)
def approve_deal(deal_id): update_obj = { BFA.FESTIVE_APPROVEMENT_ALIAS: BFM.FESTIVE_APPROVEMENT_YES, BFA.FESTIVE_DECLINE_USER_ALIAS: '' } BW.update_deal(deal_id, update_obj)