<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dhcc.finance.main.dao.CwBdSubjTransformationMapper">
  <resultMap id="BaseResultMap" type="com.dhcc.finance.main.domain.CwBdSubjTransformation">
    <result column="CPMC" jdbcType="VARCHAR" property="cpmc" />
    <result column="SUBJCODE" jdbcType="VARCHAR" property="subjcode" />
    <result column="SUBJNAME" jdbcType="VARCHAR" property="subjname" />
    <result column="BALANORIENT" jdbcType="VARCHAR" property="balanorient" />
    <result column="CWYE" jdbcType="VARCHAR" property="cwye" />
    <result column="PK_ACCSUBJ" jdbcType="VARCHAR" property="pk_accsubj" />
    <result column="PK_GLORGBOOK" jdbcType="VARCHAR" property="pkGlorgbook" />
    <result column="PK_SUBJSCHEME" jdbcType="VARCHAR" property="PK_SUBJSCHEME" />
  </resultMap>
  <select id="searchSubjTransInfo" resultMap="BaseResultMap" parameterType="string">
      select   (SELECT  NAME  FROM CW_BD_GLORGBOOK where  PK_GLORGBOOK = A.PK_GLORGBOOK)  CPMC,A.PK_GLORGBOOK,b.PK_SUBJSCHEME ,b.SUBJCODE,b.SUBJNAME,b.BALANORIENT,b.PK_ACCSUBJ,
      	CASE  WHEN b.BALANORIENT ='1'
          THEN IFNULL(a.LOCALDEBITAMOUNT,0)-IFNULL(LOCALCREDITAMOUNT,0)
          ELSE IFNULL(a.LOCALCREDITAMOUNT,0)-IFNULL(a.LOCALDEBITAMOUNT,0) end CWYE
      from (
      select  a.PK_GLORGBOOK,a.SUBJCODE,sum(a.LOCALDEBITAMOUNT) LOCALDEBITAMOUNT,sum(a.LOCALCREDITAMOUNT) LOCALCREDITAMOUNT
        from CW_GL_DETAIL  a inner join   ( select PK_VOUCHER from CW_GL_VOUCHER where PK_GLORGBOOK =  #{pkGlorgbook,jdbcType=VARCHAR} and USE_STATE= '1') b
        on a.PK_VOUCHER=b.PK_VOUCHER
        where a.USE_STATE= '1'
        GROUP BY a.SUBJCODE
      )a left join ( SELECT * FROM CW_BD_ACCSUBJ WHERE PK_SUBJSCHEME=(SELECT PK_SUBJSCHEME FROM cw_bd_subjscheme WHERE ENABLESTATE='1')) b
      on a.SUBJCODE=b.SUBJCODE
  </select>
  <update id="updateSubjTransInfo" parameterType="string">
   UPDATE  CW_GL_DETAIL  
   <set>
    <if test="pk_accsubj !=null">
    PK_ACCSUBJ=#{pk_accsubj ,jdbcType=VARCHAR},
    </if>
    <if test="subjcodeN !=null">
    SUBJCODE=#{subjcodeN ,jdbcType=VARCHAR},
    </if>
    <if test="subjname !=null">
    SUBJNAME=#{subjname ,jdbcType=VARCHAR}
    </if>
   </set>  
    WHERE  PK_VOUCHER  IN (
   SELECT PK_VOUCHER  FROM  CW_GL_VOUCHER   WHERE PK_GLORGBOOK=#{pkGlorgbook ,jdbcType=VARCHAR}
   ) AND  SUBJCODE=#{subjcodeO ,jdbcType=VARCHAR}
  </update>
</mapper>