Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
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)
Beispiel #6
0
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
Beispiel #7
0
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)
Beispiel #9
0
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)
Beispiel #11
0
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)
Beispiel #13
0
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)