소멸 포인트 get_expire_point 함수에서 po_expired 질문

소멸 포인트 get_expire_point 함수에서 po_expired 질문

QA

소멸 포인트 get_expire_point 함수에서 po_expired 질문

본문


// 소멸 포인트
function get_expire_point($mb_id)
{
    global $g5, $config;
 
    if($config['cf_point_term'] == 0)
        return 0;
 
    $sql = " select sum(po_point - po_use_point) as sum_point
                from {$g5['point_table']}
                where mb_id = '$mb_id'
                  and po_expired = '0'
                  and po_expire_date <> '9999-12-31'
                  and po_expire_date < '".G5_TIME_YMD."' ";
    $row = sql_fetch($sql);
 
    return $row['sum_point'];
}

common.lib.php 에서 소멸 포인트 부분 질문드립니다.

get_expire_point 함수에서 and po_expired = ''0' 이라는 부분이 이해가 잘 가지 않는데요

po_expired는 포인트 만료를 나타내는데 포인트 만료가 0인것을 셀렉트 하는것은 소멸 포인트 함수에서 소멸되지 않은것을 셀렉트 하는건가요?

그리고 소멸 포인트 함수에서 왜 지급 포인트-사용 포인트를 구하는건가요?

이 질문에 댓글 쓰기 :

답변 1

get_expire_point 함수는 소멸될수 있는 포인트가 있는지 리스트로 뽑아줍니다

 

po_expired는 포인트적립시 포인트가 +면 0 , -이면 1로 기록되어지는데요

여기서 확인할 수 있는점은 po_expired는 적립내역이면 0이란 값을, 마이너스내역이면 1이란 값을 입력한다는걸 알 수 있습니다

 

그렇다면 해당 함수에서 po_expired = 0를 찾는것은 적립내역 DB에서 po_expired 즉 포인트가 +된 내역만 가져오기 위함입니다.

포인트가 -된 내역은 사용한(소멸한) 포인트이니 가져올 필요가없죠

 

마지막은 po_use_point의 역할을 조금 이해하실 필요가있습니다

만약 홈페이지내에서 포인트 지급시 유효기간이 설정되어있다면 사용된 포인트를 po_use_point에 기록하게 되는데요

왜 이렇게 하느냐하면 소멸될 포인트인지 확인하기 위해서입니다 지급된 포인트가 만약 1000(po_point)이고 사용을 1000포인트(po_use_point) 하였다면 이 행에서 소멸될 포인트는? 0이겠죠? 그렇다면 소멸기간이 지나도 소멸을 시키지 말아야합니다 왜냐? 이미 지급된 포인트를 모두 사용하였기 때문이죠

 

다시 가정을 하고 다음을 봅시다 지급된 포인트가 1000포인트(po_point)이고 사용된 포인트가 970포인트(po_use_point)입니다 그러면 소멸기간이 다되었으면 30포인트가 소멸되어야 하겠지요?

 

그렇기에 소멸 예정인 포인트 리스트에서 1000포인트(po_point)-970사용포인트(po_use_point)=실제 소멸 30포인트 가 되므로 해당 함수에서 소멸될 포인트 값을 계산하여 출력하여서 넘겨서 30포인트만 소멸되도록 해줍니다

 

해당 함수가 사용되는  get_point_sum를 보면 get_expire_point에서 소멸될 포인트값(지급포인트-사용포인트)을 받아 소멸될 포인트(if($expire_point) > 0)가 있으면 포인트 소멸되는 쿼리를 진행하는걸 볼 수 있습니다

 

말재주가없어서 길어졌는데 이해하는데 도움이 되었으면 하네요

와 진짜 이곳에서 질문을 많이 했었는데 가장 마음에 들고 만족하는 답변이었습니다.
다른 분들도 잘 설명해주셨지만 이번 답변은 저의 가려운 곳을 긁어주는 시원한 답변이었어요.
궁금했던 내용이 시원하게 해결되었습니다.
정말 감사합니다 ^^
좋은일만 가득하세요!!

네 저도 감사합니다 이러한 답변을 드리면서 저도 한번씩 더배우거든요 ㅎㅎ
근데 여기서 첫문장부터 오류가있었네요 ㅠㅠ

get_expire_point 함수는 소멸될수 있는 포인트가 있는지 리스트로 뽑아줍니다(X)
get_expire_point 함수는 소멸될수 있는 포인트를 뽑아줍니다(O)

요것만 참고해주세요

답변을 작성하시기 전에 로그인 해주세요.
전체 123,123 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT