/**
 * Copyright (c) 2003-2004 System Integrator Corporation.
 *                 All Rights Reserved.
 */
package jp.co.sint.beans.front;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;

import javax.servlet.http.HttpServletRequest;

import org.apache.log4j.Category;

import jp.co.sint.basic.SIFrontBasic;
import jp.co.sint.basic.SIOrderDeliveryTbl;
import jp.co.sint.basic.SIOrderDetailTbl;
import jp.co.sint.basic.SIOrderTbl;
import jp.co.sint.config.SIConfig;
import jp.co.sint.database.SIDBAccessException;
import jp.co.sint.database.SIDBUtil;
import jp.co.sint.tools.SIUtil;
import jp.co.sint.tools.SIURLParameter;//7.1.1 ST0236 追加

/**
 * @version $Id: UIRegOrder.java,v 1.0 2003/11/06 Exp $
 * @author  asakura
 * <br>Description:
 * <p>History</p>
 * <p>Author&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reason</p>
 *  ============&nbsp;&nbsp;&nbsp;==========&nbsp;&nbsp;===========================<br>
 * asakura        2003/11/06 16:26:10  Original
 */
public class UIOrderDetail extends SIFrontBasic{
  //ログ用のインスタンスの生成
  private static Category log=Category.getInstance(SIConfig.SILOG4J_WEBSHOP_CATEGORY_NAME);
  
  //ショップコード
  private String shopCode ="";
  
  //受注番号
  private String orderCode = "";
  
  //顧客コード
  private String custCode="";
  
  public UIOrderDetail(){}
  
  //  7.1.1 ST0236 修正 ここから
  public UIOrderDetail(HttpServletRequest lRequest,SIURLParameter lUrlParam){
    init(lRequest,lUrlParam);
  }
  //  7.1.1 ST0236 修正 ここまで
  
  //setter of ショップコード
  public void setShopCode(String lShopCode){
    if (SIUtil.isNull(lShopCode)) lShopCode="";
    this.shopCode=SIUtil.changeTo(lShopCode.trim(),this.encode);
  }
  
  //setter of 受注番号(詳細検索用)
  public void setOrderCode(String lOrderCode){
    if (SIUtil.isNull(lOrderCode)) lOrderCode="";
    this.orderCode=SIUtil.changeTo(lOrderCode.trim(),this.encode);
  }
  
  //setter of 顧客コード
  public void setCustCode(String CustCode){
    if (SIUtil.isNull(CustCode)) CustCode="";
    this.custCode=SIUtil.changeTo(CustCode.trim(),this.encode);
  }
  
  //getter of ショップコード
  public String getShopCode(){
    return this.shopCode;
  }
  
  //getter of 受注番号(詳細検索用)
  public String getOrderCode(){
    return this.orderCode;
  }
  
  //getter of 顧客コード
  public String getCustCode(){
    return this.custCode;
  }
  
  /**
   * <b>init</b>
   * 入力したデータを基づいて、このbeansを設定します。
   * @param request クライアントからリクエスト
   * @param lUrlParam
   * @return なし
   * @throws なし
   */
  //7.1.1 ST0236 修正 ここから
  public void init(HttpServletRequest lRequest,SIURLParameter lUrlParam){
    this.setEncode(SIConfig.SIENCODE_SHIFT_JIS);
    super.init(lRequest,lUrlParam);
    this.setOrderCode((String)lUrlParam.getParam("orderCode"));
    this.setShopCode((String)lUrlParam.getParam("shc"));
  }
  //7.1.1 ST0236 修正 ここまで
  
  /**
   * <b>getOrder</b>
   * 条件に合ったレコードを検索して、結果のコネクションを作成して、戻します。
   * @param lConnection データベースへの接続コネクション
   * @return レコードのセット
   * @throws なし
   */
  public Collection getOrder(Connection lConnection) throws SIDBAccessException{
    Statement lStatement=null;
    ResultSet lResultSet=null;
    StringBuffer lSqlBuf=new StringBuffer();
    Collection lResultColl=new ArrayList();
    
    //受注番号が無いとき
    if((this.getOrderCode()) == null && (this.getOrderCode()).equals("")){
      return lResultColl;
    }
    
    //基本のSQL
    lSqlBuf.append("SELECT OrderCode , CustCode , CustCompanyFlg , ");
    lSqlBuf.append("CustName , CustPronName , Email , OrderAddressee , ");
    lSqlBuf.append("PostCode1 , PostCode2 , Address1 , Address2 , Address3 , ");
    lSqlBuf.append("CompanyName , Tel , Fax , PayMethodName , InitDateTime , ");
    lSqlBuf.append("UpdateDateTime , PaymentFlg , Fee , TaxRate , ReceiptDate , ");
    lSqlBuf.append("SumOfDiscount , SumByPoint , SendMailFlg , Status , ");
    lSqlBuf.append("ContactMsg , Memo , FeeTaxFlg ");
    //7.2.0 ST1030 修正 ここから
    lSqlBuf.append("FROM ").append(SIConfig.SIVIEW_ORDER_LATEST_NAME);
    //lSqlBuf.append("FROM OrderTbl ");
    lSqlBuf.append(" WHERE OrderCode =" + this.getOrderCode() + " ");
    lSqlBuf.append(" ORDER BY OrderCode ");
    //7.2.0 ST1030 修正 ここまで
    
    log.debug("lSqlBuf="+lSqlBuf.toString());
    //実行
    try{
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery(lSqlBuf.toString());
      
      //商品レコードのセットの作成
      while (lResultSet.next()){
      SIOrderTbl order = new SIOrderTbl();
      order.setEncode(SIConfig.SIENCODE_NONE);
      order.setOrderCode(lResultSet.getString("OrderCode"));//受注番号
      order.setCustCode(lResultSet.getString("CustCode"));//顧客コード
      order.setCustCompanyFlg(lResultSet.getString("CustCompanyFlg"));//法人フラグ
      order.setCustName(lResultSet.getString("CustName"));//顧客名
      order.setCustPronName(lResultSet.getString("CustPronName"));//顧客名カナ
      order.setEmail(lResultSet.getString("Email"));//EMAIL
      order.setOrderAddressee(lResultSet.getString("OrderAddressee"));//請求書宛名
      order.setPostCode1(lResultSet.getString("PostCode1"));//郵便番号１
      order.setPostCode2(lResultSet.getString("PostCode2"));//郵便番号２
      order.setAddress1(lResultSet.getString("Address1"));//請求書住所１
      order.setAddress2(lResultSet.getString("Address2"));//請求書住所２
      order.setAddress3(lResultSet.getString("Address3"));//請求書住所３
      order.setCompanyName(lResultSet.getString("CompanyName"));//会社名
      order.setTel(lResultSet.getString("Tel"));//電話番号
      order.setFax(lResultSet.getString("Fax"));//Fax番号
      order.setPayMethodName(lResultSet.getString("PayMethodName"));//支払方法名称
      order.setInitDateTime(SIDBUtil.getDateTime(lResultSet.getTimestamp("InitDateTime")));//受注日時
      order.setUpdateDateTime(SIDBUtil.getDateTime(lResultSet.getTimestamp("UpdateDateTime")));//修正日時
      order.setPaymentFlg(lResultSet.getString("PaymentFlg"));//先後払いフラグ
      order.setFee(lResultSet.getString("Fee"));//手数料
      order.setFeeTaxFlg(lResultSet.getString("FeeTaxFlg"));//手数料税区分
      order.setTaxRate(lResultSet.getString("TaxRate"));//税率
      order.setReceiptDate(SIDBUtil.getDate(lResultSet.getTimestamp("ReceiptDate")));//入金日
      order.setSumOfDiscount(lResultSet.getString("SumOfDiscount"));//値引き合計
      order.setSumByPoint(lResultSet.getString("SumByPoint"));//ポイント使用額
      order.setSendMailFlg(lResultSet.getString("SendMailFlg"));//メール送信フラグ
      order.setStatus(lResultSet.getString("Status"));//受注状態
      order.setContactMsg(lResultSet.getString("ContactMsg"));//連絡事項
      order.setMemo(lResultSet.getString("Memo"));//備考
      
      //この受注ヘッダにひもづく配送先情報を取得
      Collection orderDelivery = this.getOrderDelivery(lConnection , order.getOrderCode());
      order.setOrderDeliveryTbl(orderDelivery);
      
      lResultColl.add(order);
      }
    }catch(Exception ex){
      throw new SIDBAccessException(ex);
    }finally{
      SIDBUtil.close(lResultSet,lStatement);
    }
    
    //合計金額を計算
    this.calcOrder(lResultColl);
    
    return lResultColl;
  }
  
  /**
   * <b>getOrderDelivery</b>
   * 条件に合ったレコードを検索して、結果のコネクションを作成して、戻します。
   * @param lConnection データベースへの接続コネクション
   * @param OrderCode 受注番号
   * @return レコードのセット
   * @throws なし
   */
  public Collection getOrderDelivery(Connection lConnection , String OrderCode) throws SIDBAccessException{
    Statement lStatement=null;
    ResultSet lResultSet=null;
    StringBuffer lSqlBuf=new StringBuffer();
    Collection lResultColl=new ArrayList();
    
    //基本のSQL
    lSqlBuf.append("SELECT OrderCode , DeliveryCode , DeliveryName , ");
    lSqlBuf.append("DeliveryAddressee , Email , PostCode1 , PostCode2 , ");
    lSqlBuf.append("Address1 , Address2 , Address3 , CompanyName , Tel , ");
    lSqlBuf.append("Fax , DeliveryFee , TaxRate , DeliveryDate , DeliveryTimeFrom , ");
    lSqlBuf.append("DeliveryTimeTo , ShippmentDate , DeliveryTypeName , DeliveryTaxFlg ");
    //7.2.0 ST1030 修正 ここから
    lSqlBuf.append("FROM ").append(SIConfig.SIVIEW_ORDER_DELIVERY_LATEST_NAME);
    //lSqlBuf.append("FROM OrderDeliveryTbl ");
    lSqlBuf.append(" WHERE OrderCode =" + OrderCode + " ");
    lSqlBuf.append(" ORDER BY OrderCode , DeliveryCode ");
    //7.2.0 ST1030 修正 ここまで
    
    log.debug("lSqlBuf="+lSqlBuf.toString());
    //実行
    try{
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery(lSqlBuf.toString());
      
      //商品レコードのセットの作成
      while (lResultSet.next()){
      SIOrderDeliveryTbl orderDelivery = new SIOrderDeliveryTbl();
      orderDelivery.setEncode(SIConfig.SIENCODE_NONE);
      orderDelivery.setOrderCode(lResultSet.getString("OrderCode"));//受注番号
      orderDelivery.setDeliveryCode(lResultSet.getString("DeliveryCode"));//受注配送先項番
      orderDelivery.setDeliveryName(lResultSet.getString("DeliveryName"));//配送先呼称
      orderDelivery.setDeliveryAddressee(lResultSet.getString("DeliveryAddressee"));//配送先宛名
      orderDelivery.setEmail(lResultSet.getString("Email"));//EMAIL
      orderDelivery.setPostCode1(lResultSet.getString("PostCode1"));//郵便番号１
      orderDelivery.setPostCode2(lResultSet.getString("PostCode2"));//郵便番号２
      orderDelivery.setAddress1(lResultSet.getString("Address1"));//配送先住所１
      orderDelivery.setAddress2(lResultSet.getString("Address2"));//配送先住所２
      orderDelivery.setAddress3(lResultSet.getString("Address3"));//配送先住所３
      orderDelivery.setCompanyName(lResultSet.getString("CompanyName"));//会社名
      orderDelivery.setTel(lResultSet.getString("Tel"));//連絡先電話番号
      orderDelivery.setFax(lResultSet.getString("Fax"));//連絡先Fax番号
      orderDelivery.setDeliveryFee(lResultSet.getString("DeliveryFee"));//送料
      orderDelivery.setTaxRate(lResultSet.getString("TaxRate"));//税率
      orderDelivery.setDeliveryDate(SIDBUtil.getDate(lResultSet.getTimestamp("DeliveryDate")));//配送希望日
      orderDelivery.setDeliveryTimeFrom(lResultSet.getString("DeliveryTimeFrom"));//配送希望時間帯From
      orderDelivery.setDeliveryTimeTo(lResultSet.getString("DeliveryTimeTo"));//配送希望時間帯To
      orderDelivery.setShippmentDate(SIDBUtil.getDate(lResultSet.getTimestamp("ShippmentDate")));//出荷日
      orderDelivery.setDeliveryTypeName(lResultSet.getString("DeliveryTypeName"));//配送種別名称
      orderDelivery.setDeliveryTaxFlg(lResultSet.getString("DeliveryTaxFlg"));//配送種別名称
      
      //この配送先情報にひもづく受注明細を取得
      Collection orderDetail = this.getOrderDetail(lConnection , orderDelivery.getOrderCode() , orderDelivery.getDeliveryCode());
      orderDelivery.setOrderDetailTbl(orderDetail);
      
      lResultColl.add(orderDelivery);
      }
    }catch(Exception ex){
      throw new SIDBAccessException(ex);
    }finally{
      SIDBUtil.close(lResultSet,lStatement);
    }
    return lResultColl;
  }
  
  /**
   * <b>getOrderDetail</b>
   * 条件に合ったレコードを検索して、結果のコネクションを作成して、戻します。
   * @param lConnection データベースへの接続コネクション
   * @param OrderCode 受注番号
   * @param DeliveryCode 受注配送先項番
   * @return レコードのセット
   * @throws なし
   */
  public Collection getOrderDetail(Connection lConnection , String OrderCode ,String DeliveryCode) throws SIDBAccessException{
    Statement lStatement=null;
    ResultSet lResultSet=null;
    StringBuffer lSqlBuf=new StringBuffer();
    Collection lResultColl=new ArrayList();
    
    //基本のSQL
    lSqlBuf.append("SELECT * ");
    lSqlBuf.append("FROM ").append(SIConfig.SIVIEW_ORDER_DETAIL_LATEST_NAME);
    lSqlBuf.append(" WHERE OrderCode=").append(SIDBUtil.SQL2Str(OrderCode));
    lSqlBuf.append(" AND DeliveryCode=").append(SIDBUtil.SQL2Str(DeliveryCode));
    lSqlBuf.append(" ORDER BY OrderCode , DeliveryCode , DetailCode ");
    
    log.debug("lSqlBuf="+lSqlBuf.toString());
    //実行
    try{
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery(lSqlBuf.toString());
      
      //商品レコードのセットの作成
      while (lResultSet.next()){
      SIOrderDetailTbl orderDetail = new SIOrderDetailTbl();
      orderDetail.setEncode(SIConfig.SIENCODE_NONE);
      orderDetail.setOrderCode(lResultSet.getString("OrderCode"));//受注番号
      orderDetail.setDeliveryCode(lResultSet.getString("DeliveryCode"));//受注配送先項番
      orderDetail.setDetailCode(lResultSet.getString("DetailCode"));//受注明細項番
      orderDetail.setShopCode(lResultSet.getString("ShopCode"));//ショップコード
      orderDetail.setShopName(lResultSet.getString("ShopName"));//ショップ名
      orderDetail.setCmdtyCode(lResultSet.getString("CmdtyCode"));//商品コード
      orderDetail.setCmdtyName(lResultSet.getString("CmdtyName"));//商品名
      orderDetail.setStndrdCode1(lResultSet.getString("StndrdCode1"));//規格コード１
      orderDetail.setElementCode1(lResultSet.getString("ElementCode1"));//エレメントコード２
      orderDetail.setStndrdCode2(lResultSet.getString("StndrdCode2"));//規格コード２
      orderDetail.setElementCode2(lResultSet.getString("ElementCode2"));//エレメントコード２
      orderDetail.setAmount(lResultSet.getString("Amount"));//数量
      orderDetail.setOrgPrice(lResultSet.getString("OrgPrice"));//本体価格
      orderDetail.setPrice(lResultSet.getString("Price"));//購入価格
      orderDetail.setTaxFlg(lResultSet.getString("TaxFlg"));//本体価格税区分
      orderDetail.setTaxRate(lResultSet.getString("TaxRate"));//消費税
      orderDetail.setSize(lResultSet.getString("Size"));//商品サイズ
      orderDetail.setWrappingCode(lResultSet.getString("WrappingCode"));//ラッピングコード
      orderDetail.setWrappingName(lResultSet.getString("WrappingName"));//ラッピング名
      orderDetail.setWrappingTaxFlg(lResultSet.getString("WrappingTaxFlg"));//ラッピング税フラグ
      orderDetail.setWrappingPrice(lResultSet.getString("WrappingPrice"));//ラッピング価格
      
      lResultColl.add(orderDetail);
      }
    }catch(Exception ex){
      throw new SIDBAccessException(ex);
    }finally{
      SIDBUtil.close(lResultSet,lStatement);
    }
    return lResultColl;
  }
  
  /**
   * <b>calcOrder</b>
   * 金額の計算
   * @param order
   */
  public void calcOrder(Collection order){
    //受注ヘッダをループ
    ArrayList arrOrder = (ArrayList)order;
    for(int i=0;i<order.size();i++){
      SIOrderTbl ordertbl = (SIOrderTbl)arrOrder.get(i);
      
      /**変数宣言**/
      long fee_i = 0;//手数料
      try{
        fee_i = Long.parseLong(ordertbl.getFee());
      }catch(Exception e){
        fee_i = 0;
      }
      
      String feeTaxFlg = ordertbl.getFeeTaxFlg();//手数料税区分
      
      long taxRate_i = 0;//税率
      try{
        taxRate_i = Long.parseLong(ordertbl.getTaxRate());
      }catch(Exception e){
        taxRate_i = 0;
      }
      
      long sumOfDiscount_i = 0;//値引き額
      try{
        sumOfDiscount_i = Long.parseLong(ordertbl.getSumOfDiscount());
      }catch(Exception e){
        sumOfDiscount_i = 0;
      }
      
      long sumByPoint_i = 0;//ポイント使用額
      try{
        sumByPoint_i = Long.parseLong(ordertbl.getSumByPoint());
      }catch(Exception e){
        sumByPoint_i = 0;
      }
      
      long feeInTax_i =0;//手数料(税込み)
      long itemTotalPrice_i = 0;//商品合計金額
      long deliveryTotalPrice_i = 0;//送料合計金額
      long payPointPrice_i = 0;//ポイント使用可能金額
      long totalPrice_i = 0;//お支払い金額
      
      //受注配送先をループ
      ArrayList arrOrderDelivery = (ArrayList)ordertbl.getOrderDeliveryTbl();
      for(int j=0;j<arrOrderDelivery.size();j++){
        SIOrderDeliveryTbl orderdeliverytbl = (SIOrderDeliveryTbl)arrOrderDelivery.get(j);
        
        /**変数宣言**/
        long deliveryFee_j = 0;//送料
        try{
          deliveryFee_j = Long.parseLong(orderdeliverytbl.getDeliveryFee());
        }catch(Exception e){
          deliveryFee_j = 0;
        }
        
        String deliveryTaxFlg = orderdeliverytbl.getDeliveryTaxFlg();//送料税区分
        
        long taxRate_j = 0;//税率
        try{
          taxRate_j = Long.parseLong(orderdeliverytbl.getTaxRate());
        }catch(Exception e){
          taxRate_j = 0;
        }
        
        long deliveryFeeInTax_j = 0;//送料税込み
        
        //受注明細をループ
        ArrayList arrOrderDetail = (ArrayList)orderdeliverytbl.getOrderDetailTbl();
        for(int k=0;k<arrOrderDetail.size();k++){
          SIOrderDetailTbl orderdetailtbl = (SIOrderDetailTbl)arrOrderDetail.get(k);
          
          /**変数宣言**/
          long amount_k = 0;//数量
          try{
            amount_k = Long.parseLong(orderdetailtbl.getAmount());
          }catch(Exception e){
            amount_k = 0;
          }
          
          long orgPrice_k = 0;//本体価格
          try{
            orgPrice_k = Long.parseLong(orderdetailtbl.getOrgPrice());
          }catch(Exception e){
            orgPrice_k = 0;
          }
          
          long price_k = 0;//購入価格
          try{
            price_k = Long.parseLong(orderdetailtbl.getPrice());
          }catch(Exception e){
            price_k = 0;
          }
          
          String taxFlg = orderdetailtbl.getTaxFlg();//本体価格税区分
          
          long taxRate_k = 0;//消費税率
          try{
            taxRate_k = Long.parseLong(orderdetailtbl.getTaxRate());
          }catch(Exception e){
            taxRate_k = 0;
          }
          
          long wrappingPrice_k = 0;//ラッピング価格
          try{
            wrappingPrice_k = Long.parseLong(orderdetailtbl.getWrappingPrice());
          }catch(Exception e){
            wrappingPrice_k = 0;
          }
          
          String wrappingTaxFlg = orderdetailtbl.getWrappingTaxFlg();//ラッピング価格税区分
          
          long priceInTax_k = 0;//単価(税込み)
          long wrappingPriceInTax_k = 0;//ラッピング価格(税込み)
          long wrappingPriceOfTotal_k = 0;//ラッピング価格合計
          long itemTotalPrice_k = 0;//商品合計金額
          long totalPrice_k = 0;//総合計金額
          
          /**計算開始**/
          
          //単価(税込み)
          if(taxFlg.equals("0")||taxFlg.equals("2")){
            priceInTax_k = price_k;//非課税
          }else if(taxFlg.equals("1")){
            priceInTax_k = (long) Math.floor(price_k*(1 + taxRate_k/(double)100));//課税
          }else{
            priceInTax_k = price_k;//その他
          }
          
          //商品合計金額
          itemTotalPrice_k = priceInTax_k*amount_k;
          
          //ラッピング価格(税込み)
          if(wrappingTaxFlg.equals("0")||wrappingTaxFlg.equals("2")){
            wrappingPriceInTax_k = wrappingPrice_k;//非課税
          }else if(wrappingTaxFlg.equals("1")){
            wrappingPriceInTax_k = (long) Math.floor(wrappingPrice_k*(1 + taxRate_k/(double)100));//課税
          }else{
            wrappingPriceInTax_k = wrappingPrice_k;//その他
          }
          
          //ラッピング合計金額
          wrappingPriceOfTotal_k = wrappingPriceInTax_k*amount_k;//課税
          
          //総合計金額
          totalPrice_k = itemTotalPrice_k + wrappingPriceOfTotal_k;
          
          /**セット**/
          //単価(税込み)
          orderdetailtbl.setPriceInTax(Long.toString(priceInTax_k));
          //ラッピング価格(税込み)
          orderdetailtbl.setWrappingPriceInTax(Long.toString(wrappingPriceInTax_k));
          //ラッピング合計金額
          orderdetailtbl.setWrappingPriceOfTotal(Long.toString(wrappingPriceOfTotal_k));
          //商品合計金額
          orderdetailtbl.setItemTotalPrice(Long.toString(itemTotalPrice_k));
          //総合計金額
          orderdetailtbl.setTotalPrice(Long.toString(totalPrice_k));
          
          //商品合計金額に加算
          itemTotalPrice_i = itemTotalPrice_i + totalPrice_k;
        }
        
        /**計算**/
        //送料(税込み)
        if(deliveryTaxFlg.equals("0")||deliveryTaxFlg.equals("2")){
          deliveryFeeInTax_j = deliveryFee_j;//非課税
        }else if(deliveryTaxFlg.equals("1")){
          deliveryFeeInTax_j = (long) Math.floor(deliveryFee_j*(1 + taxRate_j/(double)100));//課税
        }else{
          deliveryFeeInTax_j = deliveryFee_j;//その他
        }
        
        //送料合計金額に加算
        deliveryTotalPrice_i = deliveryTotalPrice_i + deliveryFeeInTax_j;
        
        /**セット**/
        //送料(税込み)
        orderdeliverytbl.setDeliveryFeeInTax(Long.toString(deliveryFeeInTax_j));
      }
      
      /**計算**/
      //手数料(税込み)
      if(feeTaxFlg.equals("0")||feeTaxFlg.equals("2")){
        feeInTax_i = fee_i;//非課税
      }else if(feeTaxFlg.equals("1")){
        feeInTax_i = (long) Math.floor(fee_i*(1 + taxRate_i/(double)100));//課税
      }else{
        feeInTax_i = fee_i;//その他
      }
      
      //ポイント使用可能金額
      payPointPrice_i = itemTotalPrice_i + deliveryTotalPrice_i + feeInTax_i - sumOfDiscount_i;
      
      //お支払い金額
      totalPrice_i = payPointPrice_i - sumByPoint_i;
      
      /**セット**/
      //手数料(税込み)
      ordertbl.setFeeInTax(Long.toString(feeInTax_i));
      
      //商品合計金額
      ordertbl.setItemTotalPrice(Long.toString(itemTotalPrice_i));
      
      //送料合計金額
      ordertbl.setDeliveryTotalPrice(Long.toString(deliveryTotalPrice_i));
      
      //ポイント使用可能金額
      ordertbl.setPayPointPrice(Long.toString(payPointPrice_i));
      
      //お支払い金額
      ordertbl.setTotalPrice(Long.toString(totalPrice_i));
    }
  }
}
