<?php
/*
* @Overview 거래처 페이지
* @History 2024-03-20 / 이원기 / 최초작성
*/

$cate_id = "BASE_PARTNER"; //현재 메뉴 ID 필수!!!
include_once "{$_SERVER['DOCUMENT_ROOT']}/common.inc.php";
include_once _SVC_INC_PATH_ ."/auth_check.php";
include_once _HOME_INC_PATH_ ."/ajax_init.php";
if (!_notAuth("R")) {
  /************ 권한체크*/


  switch ($_REQUEST['mode']) {
    /*
     * @Overview 거래처리스트 조회 프로시져
     * @Params
     *   "USEFLAG"       => 사용 여부
     *   "BP_CD"           => 거래처 이름
     *   "PURFLAG"         => 매입처(PURCHASE)
     *   "SALFLAG"         => 매출처(SALES)
     *   "SALESTYPE"       => 영업구분
     */
    case "getBPList":


      $sql = "USP_B_BIZ_PARTNER_S10";

      $params = Array(
        "USE_FLG"       => $_REQUEST['USE_FLG']?:"",
        "BP_CD"         => $_REQUEST['BP_CD']?:"",
        "BP_NM"         => $_REQUEST['BP_NM']?:"",
        "PUR_FLG"       => $_REQUEST['PUR_FLG']?:"",
        "SAL_FLG"       => $_REQUEST['SAL_FLG']?:"",
      );
//            print_r($params);
      $rst = $baseObj->DB->exec($sql, $params);
      $rows = array();
      if ($rst) {
        $retval['code'] = true;
        while ($row = $baseObj->DB->fetch_array($rst)) {
//                    $row['WH_CD_OLD'] = $row['WH_CD'];

            $rows[] = $row;
        }
        $retval['data'] = $rows;
      }
      $retval['code'] = 1;
      break;

    /*
     * @Overview 거래처정보 조회 프로시져
     * @Params
     *   1) "USP_B_BIZ_PARTNER_S10 거래처 상세 정보
     *        "USEFLAG"       => 사용 여부
     *        "BP_CD" => 거래처 이름
     *        "PURFLAG"       => 매입처(PURCHASE)
     *        "SALFLAG"       => 매출처(SALES)
     *        "SALESTYPE"     => 영업구분
     *   2) "USP_B_BIZ_PARTNER_PRSN_S10"
     *        "BP_CD"         => 거래처코드
     *        "USEFLAG"       => 사용여부
    */
    case "getBPInfo":

      $sql = "USP_B_BIZ_PARTNER_S30";

      $params = Array(
        "USE_FLG"        => $_REQUEST['USE_FLG']?:"",
        "BP_CD"          => $_REQUEST['BP_CD'],
        "BP_NM"          => $_REQUEST['BP_NM']?:"",
        "PUR_FLAG"       => $_REQUEST['PUR_FLAG']?:"",
        "SAL_FLAG"       => $_REQUEST['SAL_FLAG']?:"",
      );

      $rst = $baseObj->DB->exec($sql, $params);
      $rows = array();
      if ($rst) {
        $retval['code'] = true;
        while ($row = $baseObj->DB->fetch_array($rst)) {
            $rows[] = $row;
        }
        $retval['data'] = $rows[0];
      }

      $sql = "USP_B_BIZ_PARTNER_PRSN_S10";
      $params = Array(
        "BP_CD"         => $_REQUEST['BP_CD']?:"",
        "USE_FLG"       => $_REQUEST['useFLG']?:"Y"
      );

      $rst = $baseObj->DB->exec($sql, $params);
      $rows = array();
      if ($rst) {
        $retval['code'] = true;
        while ($row = $baseObj->DB->fetch_array($rst)) {
//                    $row['WH_CD_OLD'] = $row['WH_CD'];

            $rows[] = $row;
        }
        $retval['data']['prsn'] = $rows;
      }
      $retval['code'] = 1;
      break;

    /*
     * @Overview 거래처정보 등록 및 수정 프로시져
     * @Params
     *   "BP_CD"              => 거래처 코드
         "BP_NM"              => 거래처 이름
         "BP_FULL_NM"         => 거래처 상세명
         "BIZ_TYPE"           => 업종
         "BIZ_ITEM"           => 업태
         "BIZ_REG_NO"         => 사업자등록번호
         "REPRESN_NM"         => 대표자 이름
         "RES_REG_NO"         => 주민번호 ?
         "ZIP_CD"             => 우편번호
         "ADDR1"              => 주소
         "ADDR2"              => 상세주소
         "NAT_CD"             => 국가
         "CURRENCY_CD"        => 화폐
         "TEL_NO"             => 전화번호
         "FAX_NO"             => 팩스번호
         "PUR_FLG"            => 매입처 구분
         "SAL_FLG"            => 매출처 구분
         "BP_TYPE"            => 자사구분
         "USE_FLG"            => 사용여부
         "REMK"               => 비고
         "MAKE_USER_ID"       => 등록자
         "RS_CODE"            => 응답 코드
         "RS_MSG"             => 응답 메세지
    */
    case "putBPInfo":
      $sql = "";
      if($_REQUEST['putOrSet'] == "put"){
        $sql = "USP_B_BIZ_PARTNER_I10";
      }else if($_REQUEST['putOrSet'] == "set"){
        $sql = "USP_B_BIZ_PARTNER_U10";
      }


      $params = Array();

      $_REQUEST['RS_CODE'] = "";
      $_REQUEST['RS_MSG'] = "";

      $params = Array(
        "BP_CD"        => $_REQUEST['BP_CD'], //거래처 코드
        "BP_NM"        => $_REQUEST['BP_NM'],
        "BP_FULL_NM"   => $_REQUEST['BP_FULL_NM'],
        "BIZ_TYPE"     => $_REQUEST['BIZ_TYPE'], //업종
        "BIZ_ITEM"     => $_REQUEST['BIZ_ITEM'], //업태
//        "BIZ_REG_NO"   => preg_replace("/\-/ims","",$_REQUEST['BIZ_REG_NO']),
        "BIZ_REG_NO"   => preg_replace("/\-/ims","",$_REQUEST['BIZ_REG_NO']),
        "REPRESN_NM"   => $_REQUEST['REPRESN_NM'],
        "RES_REG_NO"   => $_REQUEST['RES_REG_NO'],//주민번호, 필요 없음
        "ZIP_CD"       => $_REQUEST['ZIP_CD'],
        "ADDR1"        => $_REQUEST['ADDR1'],
        "ADDR2"        => $_REQUEST['ADDR2'],
        "NAT_CD"       => $_REQUEST['NAT_CD'],
        "CURRENCY_CD"  => $_REQUEST['CURRENCY_CD'],
        "TEL_NO"       => preg_replace("/\-/ims","",$_REQUEST['TEL_NO']),
        "FAX_NO"       => preg_replace("/\-/ims","",$_REQUEST['FAX_NO']),
        "PUR_FLG"      => $_REQUEST['PUR_FLG']?:"",
        "SAL_FLG"      => $_REQUEST['SAL_FLG']?:"",
        "BP_TYPE"      => $_REQUEST['BP_TYPE']?:"",
        "USE_FLG"      => $_REQUEST['USE_FLG']?:"",
        "REMK"         => $_REQUEST['REMK'],
        "MAKE_USER_ID" => $GLOBALS['_Umem']['member_id'],
        "RS_CODE"      => array(&$_REQUEST['RS_CODE'], SQLSRV_PARAM_OUT),
        "RS_MSG"       => array(&$_REQUEST['RS_MSG'], SQLSRV_PARAM_OUT)

      );


      $rst = $baseObj->DB->exec($sql, $params);

      if( $rst ){
        $_REQUEST['PRSN'] = json_decode($_REQUEST['PRSN']);
        foreach( $_REQUEST['PRSN'] as $prsn ){
          $prsn = (array)$prsn;
//                  if( $prsn['_STATUS_'] == 'I' && $prsn['USE_FLG'] != "Y" ) continue;
          $data = $prsn;
//                  unset($data['_STATUS_']);
//                  unset($data['USE_FLG']);
          //if( empty(array_filter($prsn)) && ($data['_STATUS_'] || $data['_STATUS_'] == 'I') ) continue; //빈열 제거
//                  if( empty(array_filter($data)) ){
//                      //if( !$data['_STATUS_'] || $data['_STATUS_'] == 'I' ) continue; //빈열제거
//                    if( $prsn['_STATUS_'] == 'I' ) continue; //빈열제거
//                      if( $prsn['_STATUS_'] == 'U' ) $prsn['_STATUS_'] = 'D'; //빈열제거
//                  }

          if( $prsn['BP_PRSN_ID'] && $prsn['_STATUS_'] == 'D' ){
            $sql = "USP_B_BIZ_PARTNER_PRSN_D10";
            $params = Array(
                "BP_CD"           => $_REQUEST['BP_CD'],
                "BP_PRSN_ID"      => $prsn['BP_PRSN_ID']
            );

          }else{
            if( $prsn['BP_PRSN_ID'] && $prsn['_STATUS_'] == 'U' ) {
                $sql = "USP_B_BIZ_PARTNER_PRSN_U10";
            }else{
                $sql = "USP_B_BIZ_PARTNER_PRSN_I10";
            }
            $params = Array(
                "BP_CD"           => $_REQUEST['BP_CD'],
                "BP_PRSN_ID"      => $prsn['BP_PRSN_ID']?:uniqid($_REQUEST['BP_CD']."_"),
                "BP_PRSN_NM"      => $prsn['BP_PRSN_NM']?:"",
//                          "BP_PRSN_EMAIL"   => $baseObj->lcrypt->enc_secure($prsn['BP_PRSN_EMAIL']),
//                          "BP_PRSN_TEL_NO"  => $baseObj->lcrypt->enc_secure($prsn['BP_PRSN_TEL_NO']),
//                          "BP_PRSN_CELL_NO" => $baseObj->lcrypt->enc_secure($prsn['BP_PRSN_CELL_NO']),
                "BP_PRSN_EMAIL"   => $prsn['BP_PRSN_EMAIL'],
                "BP_PRSN_TEL_NO"  => $prsn['BP_PRSN_TEL_NO'],
                "BP_PRSN_CELL_NO" => $prsn['BP_PRSN_CELL_NO'],
                "BP_PRSN_FAX_NO"  => $prsn['BP_PRSN_FAX_NO'],
                "USE_FLG"         => $prsn['USE_FLG']?:"Y",
                "REMK"            => $prsn['REMK'],
                "MAKE_USER_ID"    => $GLOBALS['_Umem']['member_id'],
            );
          }
            $rst = $rst && $baseObj->DB->exec($sql, $params);
        }

          if( $_REQUEST['RS_CODE'] == "E" ){
            $retval['msg']  = $_REQUEST['RS_MSG'];
            $retval['code'] = 0;
          }else{
            $retval['code'] = 1;
          }
        }

        break;


     /*
      * @Overview 거래처정보 삭제 프로시져
      * @Params
      *   1) USP_B_BIZ_PARTNER_D10
      *     params(
      *       "BP_CD"           => $tempData['BP_CD'], //거래처 코드
      *     )
      * @Function
      *   1) 실제 데이터가 삭제되는 것은 아니며 사용여부의 'Y' 값을 'N'으로 변경
     */

    case "delBPInfo":
      $_REQUEST['RS_CODE'] = "";
      $_REQUEST['RS_MSG'] = "";
      $_REQUEST['data'] =  json_decode($_REQUEST['data']);
      
      foreach( $_REQUEST['data'] as $tempData){
        $sql = "USP_B_BIZ_PARTNER_D10";
        $tempData= (array)$tempData;
        
        if($tempData['_STATUS_'] == 'D' ){
          $_REQUEST['RS_CODE'] = "";
          $_REQUEST['RS_MSG'] = "";
          $params = Array(
            "BP_CD"        => $tempData['BP_CD'],
            "RS_CODE"      => array(&$_REQUEST['RS_CODE'], SQLSRV_PARAM_OUT),
            "RS_MSG"       => array(&$_REQUEST['RS_MSG'], SQLSRV_PARAM_OUT)
          );
          $rst = $baseObj->DB->exec($sql, $params);
        }

      }
      if($_REQUEST['RS_CODE'] == "E"){
        $retval['code'] = 0;
      }else{
        $retval['code'] = 1;
      }

      break;

  }
}


if (!$_REQUEST['no_echo']) {
  echo json_encode($retval);
}