지정한 라인으로 리턴시키는 함수가 잇나요?

지정한 라인으로 리턴시키는 함수가 잇나요?

QA

지정한 라인으로 리턴시키는 함수가 잇나요?

본문

아래는 취소자에 따른 대기자를 주문으로 승급시키는 업데이트 로직인데요.
빨간부분을 읽은뒤에 파란색으로 표시된부분으로 다시 리턴시킬수 잇는 함수가 잇나요?
 
<?
include_once("_common.php");
if (!$member[mb_id])
    alert_close("잘못된 접근입니다.");
if (!($write[mb_id] == $member[mb_id] || $mb_id == $member[mb_id]))
     alert_close("잘못된 접근입니다.");
if (!($bo_table && $wr_id && $mb_id && $sc_no))
    die("값이 제대로 넘어오지 않았습니다.");
$sco = sql_fetch(" select * from g4_sc_order where sc_id = '$wr_id' and or_st = '1' and sc_no = '$sc_no' and mb_id = '$mb_id' ");
if (!$sco)
    alert_close("주문정보가 없습니다.");
 $sc = sql_fetch(" select * from g4_sc where sc_id = '$wr_id' and sc_no = '$sc_no' ");
if (!$sc)
    alert_close("특가정보가 없습니다.");
 
이부분부터 다시 시작
 
//첫번째 대기자 정보 뽑음
$scover = sql_fetch("select * from g4_sc_order where sc_id = '$wr_id' and or_st = '0' and sc_no = '$sc_no' order by or_datetime limit 0,1");
 
if ($scover) { //###########대기자가 있다면
         if ($sco[or_cnt]<$scover[or_cnt]) { //@@@@@@@@@@@@@@@@@@@@@@주문자보다 대기자의 수량이 더 많다면
   $point_save =  $write[wr_7]*$sco[or_cnt]; //-------수량에 따른 포인트값 계산
         $idp = get_member($scover['mb_id'], mb_point);
                                        
           if ($idp[mb_point]<$point_save) { //신청포인트부족시
            // 대기자정보 신청포인트미달로 대기자 하락 업데이트
                                             mysql_query(" update g4_sc_order set or_datetime = '$g4[time_ymdhis]' where sc_id = '$wr_id' and sc_no = '$sc_no' and mb_id = '{$scover[mb_id]}' and or_st = '0' ");

           }else{
              //신청포인트만큼 차감
    $query="insert g4_point values ('', '{$scover[mb_id]}', now(), '$wr_id 특가 신청포인트 차감', '-$point_save', '$bo_table', '$wr_id', '특가찬스')";
    $resultt=mysql_query($query);
      
    //회원정보의 포인트 갱신
    mysql_query("update g4_member set mb_point=mb_point-'$point_save' where mb_id='{$scover[mb_id]}'");
           }

         $mocnt = $scover[or_cnt] - $sco[or_cnt]; //대기자의 수량에서 취소자의 수량뺌
   $moprice = $scover[or_price] - $sco[or_price]; //대기자의 금액에서 취소자의 금액뺌
   // 대기자정보 업데이트
         mysql_query(" update g4_sc_order set or_st = '1', or_cnt = '{$sco[or_cnt]}', or_price = '{$sco[or_price]}' where sc_id = '$wr_id' and sc_no = '$sc_no' and mb_id = '{$scover[mb_id]}' and or_st = '0' ");
         //남는수량만큼 대기자정보 새로추가
   $sql = " insert into g4_sc_order
              set sc_id = '$wr_id',
                    sc_product = '{$scover[sc_product]}',
                    sc_name = '{$scover[sc_name]}',
                    sc_no = '{$scover[sc_no]}',
                    mb_id = '$mb_id',
                    or_cnt = '{$mocnt}',
                    or_price = '{$moprice}',
                    or_name = '{$scover[or_name]}',
                    or_bank = '{$scover[or_bank]}',
                    or_tel = '{$scover[or_tel]}',
                    or_addr = '{$scover[or_addr]}',
                    or_ip = '{$scover[or_ip]}',
                    or_memo = '{$scover[or_memo]}',
                    or_datetime = '{$scover[or_datetime]}',
                    or_st = '0' ";
        sql_query($sql);
        
   }else if ($sco[or_cnt]>$scover[or_cnt]) { //@@@@@@@@@@@@@@@@@@@주문자보다 대기자의 수량이 적다면
                                   $point_save =  $write[wr_7]*$scover[or_cnt]; //-------수량에 따른 포인트값 계산
                                         $idp = get_member($scover['mb_id'], mb_point);
                                        
           if ($idp[mb_point]<$point_save) { //신청포인트부족시
            // 대기자정보 신청포인트미달로 대기자 하락 업데이트
                                             mysql_query(" update g4_sc_order set or_datetime = '$g4[time_ymdhis]' where sc_id = '$wr_id' and sc_no = '$sc_no' and mb_id = '{$scover[mb_id]}' and or_st = '0' ");

           }else{
              //신청포인트만큼 차감
    $query="insert g4_point values ('', '{$scover[mb_id]}', now(), '$wr_id 특가 신청포인트 차감', '-$point_save', '$bo_table', '$wr_id', '특가찬스')";
    $resultt=mysql_query($query);
      
    //회원정보의 포인트 갱신
    mysql_query("update g4_member set mb_point=mb_point-'$point_save' where mb_id='{$scover[mb_id]}'");
           }
   $modcnt = $sco[or_cnt] - $scover[or_cnt]; //취소자의 수량에서 대기자의 수량뺌
   $modprice = $sco[or_price] - $scover[or_price]; //취소자의 금액에서 대기자의 금액뺌
   // 대기자정보 업데이트
         mysql_query(" update g4_sc_order set or_st = '1' where sc_id = '$wr_id' and sc_no = '$sc_no' and mb_id = '{$scover[mb_id]}' and or_st = '0' ");
   // 취소자정보 업데이트
         mysql_query(" update g4_sc_order set or_cnt = '$modcnt', or_price = '$modprice' where sc_id = '$wr_id' and sc_no = '$sc_no' and mb_id = '$mb_id' and or_st = '1' ");
 
 
        }else if ($sco[or_cnt]==$scover[or_cnt]) { //@@@@@@@@@@@@@@@@@@@주문자 대기자 수량이 같다면

                                        $point_save =  $write[wr_7]*$scover[or_cnt]; //-------수량에 따른 포인트값 계산
                                         $idp = get_member($scover['mb_id'], mb_point);
                                        
           if ($idp[mb_point]<$point_save) { //신청포인트부족시
            // 대기자정보 신청포인트미달로 대기자 하락 업데이트
                                             mysql_query(" update g4_sc_order set or_datetime = '$g4[time_ymdhis]' where sc_id = '$wr_id' and sc_no = '$sc_no' and mb_id = '{$scover[mb_id]}' and or_st = '0' ");

           }else{
              //신청포인트만큼 차감
    $query="insert g4_point values ('', '{$scover[mb_id]}', now(), '$wr_id 특가 신청포인트 차감', '-$point_save', '$bo_table', '$wr_id', '특가찬스')";
    $resultt=mysql_query($query);
      
    //회원정보의 포인트 갱신
    mysql_query("update g4_member set mb_point=mb_point-'$point_save' where mb_id='{$scover[mb_id]}'");
           }
   // 대기자정보 업데이트
         mysql_query(" update g4_sc_order set or_st = '1' where sc_id = '$wr_id' and sc_no = '$sc_no' and mb_id = '{$scover[mb_id]}' and or_st = '0' ");
   // 취소자정보 업데이트
         mysql_query(" update g4_sc_order set or_st = '0', or_datetime = '$g4[time_ymdhis]' where sc_id = '$wr_id' and sc_no = '$sc_no' and mb_id = '$mb_id' and or_st = '1' ");

  } //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@수량비교끝
}else{ //###############대기자가 없다면
// 상품수량증가 업데이트
mysql_query(" update g4_sc set sc_stock = sc_stock +'$sco[or_cnt]', sc_sell = sc_sell -'$sco[or_cnt]' where sc_id = '$wr_id' and sc_no = '$sc_no' ");
} //##################대기자가 있다면 끝

// 주문자정보 대기자로 업데이트
mysql_query(" update g4_sc_order set or_st = '0', or_datetime = '$g4[time_ymdhis]' where sc_id = '$wr_id' and mb_id = '$mb_id' and or_st = '1' ");

if ($member[mb_id] == $write[mb_id]) { //--------판매자에의한 취소의경우
             //주문자에게 쪽지보내기~
   $tmp_row = sql_fetch(" select max(me_id) as max_me_id from $g4[memo_table] ");
   $me_id = $tmp_row[max_me_id] + 1;
   
   $team_dall = substr($g4[time_ymdhis],0,4).".".substr($g4[time_ymdhis],5,2).".".substr($g4[time_ymdhis],8,2)." (".get_yoil($g4[time_ymdhis]).") ".substr($g4[time_ymdhis],11,5);
   
   $recv_mb_id   = $mb_id;
   $memo="{$write[wr_6]})의 특가담당자가 {$team_dall} 주문을 취소처리하였습니다.\\n다음 기회에 좀더 특별한 혜택으로 만나길 희망합니다.\\n감사합니다.\\n특가주소 : http://$_SERVER[SERVER_NAME]/$bo_table/$wr_id";
        $sql2 = " insert into $g4[memo_table]
                    set me_id = '$me_id',
                    me_recv_mb_id = '$recv_mb_id',
                    me_send_mb_id = '$write[mb_id]',
                    me_send_datetime = '$g4[time_ymdhis]',
                    me_memo = '$memo' ";
        sql_query($sql2);
        // 실시간 쪽지 알림 기능
        sql_query(" UPDATE $g4[member_table] SET mb_memo_call = '$write[mb_id]' WHERE mb_id = '$recv_mb_id' ");
  } //--------판매자에의한 취소의경우

?>

이 질문에 댓글 쓰기 :

답변 1

가능하긴 한데 로직상 추천해 드리진 않습니다.


참고하세요
답변을 작성하시기 전에 로그인 해주세요.
전체 1,200
QA 내용 검색

회원로그인

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