以前项目中js写法3

1.erp.sold.base.js

/**
 * 売上管理ベースJavaScript
 *
 * @date 2011-03-14
 */
(function( window, $ ) {

 // 必要性JSファイルチェックする
 if ( typeof $ == "undefined" ) {
  throw 'jQuery loading failed, Please first to included jQuery js file';
 }

 if ( typeof NumberFormat == "undefined" ) {
  throw 'NumberFormat loading failed, Please to included number.format.js file';
 }

 // String-Object extend contains method
 if ( !String.prototype.contains ) {
  String.prototype.contains = function( s ) {
   return this.indexOf( s ) != -1;
  };
 }

 /**
  * ネームスペースを創造する
  *
  * @param {String} name
  *      ネームスペース名
  * @param {Object} module
  *      ネームスペース対象
  * @param {Object} owner
  *      ターゲット環境対象
  */
 function createModule( name, module, owner ) {
  var
   packages = name.split( '.' ),
   
   len = packages.length - 1,
   
   packageName, i = 0;

  function packageNameCheck( pname ) {
   return new RegExp( '^[a-zA-Z_\$][a-zA-Z0-9_\$]*$' ).test( pname );
  }

  function throwErr2InvaildPackageName( pname ) {
   if ( !packageNameCheck( pname ) ) {
    throw 'Package Name is invalid.';
   }
  }

  // ownerが存在しない場合,現在のスコープを探して,そしてスコープからパラメタが存在しない,ウィンドウで創造される。
  if ( !owner ) {
   try {
    throwErr2InvaildPackageName( packages[ 0 ] );

    owner = eval( packages[ 0 ] );
    i = 1;
   } catch ( e ) {
    owner = window;
   }
  }

  for ( ; i < len; i++ ) {
   packageName = packages[ i ];

   throwErr2InvaildPackageName( packageName );

   if ( !owner[ packageName ] ) {
    owner[ packageName ] = {};
   }
   owner = owner[ packageName ];
  }

  if ( !owner[ packages[ len ] ] ) {
   owner[ packages[ len ] ] = module;
  }

 }

 /**
  * StringBuffer 定義する
  */
 function StringBuffer() {
  this.__string__ = new Array();

  this.append = function( str ) {
   this.__string__.push( str );
   return this;
  };

  this.toString = function( sqlit ) {
   if ( sqlit && typeof sqlit == 'string' ) {
    return this.__string__.join( sqlit );
   }
   else {
    return this.__string__.join( '' );
   }
  };
  
  this.empty = function() {
   this.__string__.length = 0;
   return this;
  };
 }

 var
  // window alias
  w = window,
 
  // ロハス パッケージ名
  _package = "Erp",
 
  // 売上 ネームスペース
  _namespace = "Sold",

  // ツール対象
  Util = {
 
   /**
    * Arrayにオブジェクトを変換する [ [k1, v1], [k2, v2], .... ] => { k1 : v1, .... }
    *
    * @param {Array} arr
    * @return {Object}
    */
   arr2Object : function( arr ) {
    var classStructure = {};
 
    if ( !arr || !$.isArray( arr ) ) return classStructure;
 
    for ( var i = 0; i < arr.length; i++ ) {
     classStructure[ arr[ i ][ 0 ] ] = arr[ i ][ 1 ] || {};
    }
 
    return classStructure;
   }
  },

  Sole = {
 
   /**
    * 厳格な数字
    *
    * @param {String} n
    * @param {Boolean} pos trueの場合、「.」を保持する
    */
   getNum : function( n, pos ) {
    var
     reg = pos ? /[^\d\.-]/g : /[^\d-]/g,
     n = n || 0,
     num = $.trim( n ).replace( reg, '' ),
     num = Number( num );
 
    return isNaN( num ) ? 0 : num;
   },
 
   /**
    * 数字フォマット
    *
    * @param {Number} n 数字
    * @param {Boolean} isSymbole 「¥」かどうか追加
    * @param {Boolean} isCommas 「,」かどうか追加
    * @param {Number} fixedSize 小数長さ
    */
   numberFormat : function( n, isSymbole, isCommas, fixedSize ) {
    n = typeof fixedSize == 'number' ? n.toFixed( fixedSize ) : n;
    
    if ( !isCommas && !isSymbole ) {
     return Number(n);
    }
    
    //n = isCommas ? NumberFormat.addCommas( n ).replace( /0*$/, '' ).replace( /\.$/, '' ) : n;
    n = isCommas ? NumberFormat.addCommas( n ) : n;
    n = isSymbole ? '¥' + n : n;
 
    return n;
   },
   
 
   // debug メソッド
   log : function(o) {
    typeof console != "undefined" && typeof console.debug != "undefined" ?
      console.log( o ) : alert( '[DEBUG] ' + o );
   },
   
   
   /**
    * 計算時機イベント
    *
    * @param {Object} jObj
    *    
    * @param {Function} fn
    *     callback
    */
   bindEvent : function( jObj, fn) {
    // if the obj is jQuery Object, not constructed
    jObj = jObj.jquery ? jObj : $( jObj );
    
    return jObj.bind( 'focus blur', function( event ) {
     
     var
      btn = $( this ),
      v = btn.val();
     
     switch ( event.type ) {
      case 'focus' :
       btn.data( "oldValue", v );
       break;
       
      case 'blur' :
       var newVal = btn.val();
       
       if ( btn.data( 'oldValue' ) == newVal ) { break; }
       
       if ( $.isFunction( fn ) ) { fn(); }
       
       break;
     }
     
    });
   },
   
   // 非表示項目正規表示式。(例えば:<input type="hidden" name="sold[0].name">)
   hiddenNameReg : /^([a-zA-Z]+?)(?=\[)/,
   
   // 支払区分
   payDiv : {
    // TODO
    cash : {
     name : '現金',
     value : 0
    },
    credit : {
     name : 'クレジット',
     value : 1
    },
    bank : {
     name : '銀行振込',
     value : 2
    }
   },
   
   // 課税区分
   taxDiv : {
    // TODO
    exclusive : 0, // 外税
    inclusive : 1 // 内税
   },
   
   // 文字数
   maxlength : {
    price_limit : 6,
    qty_limit : 4
   }
  };

 var _alias = _package + "." + _namespace;

 // Exposed to the global object, window.Erp
 createModule( _package, {
  "createModule" : createModule,
  "StringBuffer" : StringBuffer,
  "$sb" : StringBuffer // short alias, #sb -> StringBuffer
   }, w );

 // Exposed to the global object, window.Erp.Sold
 createModule( _alias, Sole, w );

 // Exposed to the global object, window.Erp.Sold.Util
 createModule( _alias + ".Util", Util, w );

})( window, window[ "jQuery" ] );

#####################################

2.erp.sold.studio.member.js

/**
 * 売上管理・スタジオ売上・会員
 *
 * @daate 2011-04-25
 */
(function( window, $ ) {

 // Erp.Sold
 if ( typeof Erp.Sold == "undefined" ) {
  throw 'Erp.Sold loading failed, Please to included erp.sold.base.js file';
 }
 
 // 商品選択JSファイル
 if ( typeof Product == "undefined" ) {
  throw 'Product loading failed, Please to included Product.js file';
 }

 // 全て選択、全て未選択ボタンなど共通処理
 if ( typeof Selector == "undefined" ) {
  throw 'Selector loading failed, Please to included Selector.js file';
 }

 // 消費税額
 if ( typeof Common == 'undefined' ) {
  throw 'Common.Compute loading failed, Please to included compute.js file';
 }
 
 if ( !Erp.Sold.Studio ) {
  Erp["createModule"]( 'Studio', {}, Erp.Sold );
 }
 

 
 var
 
 // 厳格な数字を取れる
 getNumeric = Erp.Sold.getNum,
 
 // 数字フォマット
 numberFormat = Erp.Sold.numberFormat,
 
 // debug メソッド
 log = Erp.Sold.log,
 
 // alias setTimeout
 setTimeout = window.setTimeout,
 
 evenLineClass = 'evenLine',
 
 stringTrueReg = /^true$/i;

 
 /**
  * クラス売上入力関連JS処理
  *
  * @param sessionTax
  *    セッションから諸費税率
  */
 var Member = function( sessionTax ) {
  return new Member.fn._init( sessionTax );
 },
 
 bindEvent = function( this_, o, options ) {
  
  return Erp.Sold.bindEvent( o, function() {
   setTimeout(function() {
    Member.fn.calculate.call( this_, options || {} );
            }, 20);
  }).number();
 };

 Member.fn = Member.prototype = {

  _init : function( sessionTax ) {
  
   // 全て選択ボタンID
   this._selectAll = '#_selectAll';
   // 全て未選択ボタンID
   this._unSelectAll = '#_unSelectAll';
   // 削除ボタンID
   this._deleteSelected = '#_deleteSelected';
   // 商品選択ボタン
   this._chooseBtn = ".chooseBtn";
   // 割引プルダウン
   this._discountDivPullDown = '._discountDivPullDown';
   
   // データ元
   this._soldDataSource = "#_soldDataSource";
   // 合計表示
   this._soldDataDisplay = "#_soldDataDisplay";
   
   // tr カウント数(最後の商品選択行が除く)
   this._globalCount = $( this._soldDataSource ).find( 'tr' ).length - 1;
   
   // セッションから消費税率
   Member.fn.sessionTax = getNumeric( sessionTax, true );
  },
  
  /**
   * 割引プルダウンHTML
   *
   * @return {String}
   */
  _discountDivOptionsHtml : function() {
   
   var html = new Erp.$sb();
   
   for ( var key in Member.fn.discountDiv ) {
    var v = Member.fn.discountDiv[key];
    html.append( '<option value="' + key + '">' + v.name + '</option>');
   }
   
   Member.fn._discountDivOptionsHtml = function() {
    return html.toString();
   };
   
   return Member.fn._discountDivOptionsHtml();
  },

  // 支払区分
  payDiv : Erp.Sold.payDiv,
  
  // 課税区分
  taxDiv : Erp.Sold.taxDiv,
  
  //TODO
  // 割引区分
  discountDiv : {
    0 : {
     name : '割引無',
     discountRate : {
      setVal : 0,
      setDisable : true
     },
     discountAmt : {
      setVal : 0,
      setDisable : true
     }
    },
    1 : {
     name : '割引率',
     discountRate : {
      setVal : 0,
      setDisable : false,
      discountAmtCalculate : function( qty, price, rate ) {
       return Math.floor( ( qty * price ) * ( rate * 0.01 ) );
      }
     },
     discountAmt : {
      setVal : 0,
      setDisable : true
     }
    },
    2 : {
     name : '割引額',
     discountRate : {
      setVal : 0,
      setDisable : true
     },
     discountAmt : {
      setVal : 0,
      setDisable : false
     }
    }
  }
 };
 
 /**
  * ボタンイベント
  *
  * @return {Member}
  */
 Member.fn.buttonEvent = function() {
  
  var this_ = this;
  
  // 全て選択
  $( this._selectAll ).click( Selector.selectAll );

  // 全て未選択
  $( this._unSelectAll ).click( Selector.unselectAll );
  
  // 削除ボタン
  $( this._deleteSelected ).click(function() {

   $( "input.ck:checked" ).each(function() {
    $( this ).parent( 'td' ).parent( 'tr' ).remove();
   });

   Member.fn.calculate.call( this_, {
    isRefreshBgColor : true,
    isRefreshLineNo : true,
    isCalculate : true
   });
  });
  
  // 割引区分プルダウン
  this.changePullDown( this._discountDivPullDown );
  
  return this;
 };
 
 /**
  * 割引区分プルダウン
  *
  * @param {jQuery} target
  * @return {jQuery}
  */
 Member.fn.changePullDown = function( target ) {
  var this_ = this;
  
  // 割引区分プルダウン
  return $( target ).live( 'change', function() {
   var
    select = $(this);
    obj = Member.fn.discountDiv[ select.val() ];
    rateEle = select.parent().next( 'td' ).find( 'input:text' ),
    amtEle = rateEle.parent().next( 'td' ).find( 'input:text' );
   
    rateEle.val( obj.discountRate.setVal ).prop( 'disabled', obj.discountRate.setDisable );
    amtEle.val( obj.discountAmt.setVal ).prop( 'disabled', obj.discountAmt.setDisable );
    
    Member.fn.calculate.call( this_, {} );
  });
 };
 
 
 /**
  * 画面で全ての入力テキストボックスを入力制限に設定する。
  *
  * @return {Member}
  */
 Member.fn.restrictInput = function() {
  
  bindEvent( this, $( this._soldDataSource ).find( 'input:text' ) );
  
  return this;
 };
 
 
 
 /**
  * 商品選択
  *
  * @return {Member}
  */
 Member.fn.chooseProduct = function() {
  
  var this_ = this;
  
  $( this_._chooseBtn ).bind( 'click', function() {
   
   Product.windowOpen( 'sold', undefined, undefined, function( o ) {
    
    var
     count = this_._globalCount++,
     index = count - 1,
     lineNo = $( this_._soldDataSource ).find( 'tr' ).slice(1, -1).length + 1,
     htmlStr = new Erp.$sb(),
     hasClass = index % 2 == 0,
     classStr = hasClass ? ' class="' + evenLineClass + '"' : '';
    
    htmlStr
     .append( '<tr' + classStr + '>' )
      .append( '<td style="display: none;">' )
       .append( '<input type="hidden" name="ptsBean.soldDtlList[' + index + '].productTicketFlg" value="product" />' )
       .append( '<input type="hidden" name="ptsBean.soldDtlList[' + index + '].productCd" value="' + o.productCd + '" />' )
       .append( '<input type="hidden" name="ptsBean.soldDtlList[' + index + '].productDisplayName" value="' + o.productDisplayName + '" />' )
       .append( '<input type="hidden" name="ptsBean.soldDtlList[' + index + '].productTaxDiv" value="' + o.taxDiv + '" />' )
       .append( '<input type="hidden" name="ptsBean.soldDtlList[' + index + '].productTaxDivName" value="' + o.taxDivDisplayName + '" />' )
       .append( '<input type="hidden" name="ptsBean.soldDtlList[' + index + '].tradeQty" value="0" />' )
       .append( '<input type="hidden" name="ptsBean.soldDtlList[' + index + '].tradeUnitPrice" value="' + o.price + '" />' )
      .append( '</td>' )
      .append( '<td class="alignRight">' + lineNo + '</td>' )
      .append( '<td class="alignCenter"><input type="checkbox" class="ck" name="ptsBean.soldDtlList[' + index + '].ck" value="true" /></td>' )
      .append( '<td>' + o.productCd + '</td>' )
      .append( '<td>' + o.productDisplayName + '</td>' )
      .append( '<td>' + o.taxDivDisplayName + '</td>' )
      .append( '<td class="alignRight">¥ <input type="text" size="7" maxlength="' + Erp.Sold.maxlength.price_limit + '" name="ptsBean.soldDtlList[' + index + '].tradeUnitPriceStr"  value="' + o.price + '" /></td>' )
      .append( '<td class="alignRight"><input type="text" size="3" maxlength="' + Erp.Sold.maxlength.qty_limit + '" name="ptsBean.soldDtlList[' + index + '].tradeQtyStr"  value="0" /></td>' )
      .append( '<td class="alignCenter">' )
       .append( '<select class="' + this_._discountDivPullDown.replace( /.|#/, '' ) + '" name="ptsBean.soldDtlList[' + index + '].discountDiv" >' )
        .append( this_._discountDivOptionsHtml() )
       .append( '</select>' )
      .append( '</td>' )
      .append( '<td class="alignRight"><input type="text" size="2" maxlength="3" name="ptsBean.soldDtlList[' + index + '].discountRateStr" />%</td>' )
      .append( '<td class="alignRight">¥ <input type="text" size="2" maxlength="' + Erp.Sold.maxlength.price_limit + '" name="ptsBean.soldDtlList[' + index + '].discountPriceStr" /></td>' )
      .append( '<td class="alignRight">¥ 0</td>' )
     .append( '</tr>' );
    
    // convert to jQuery Object
    var html = $( htmlStr.toString() );
    
    // bind the event and to be triggered. TODO live event, binding?
    /* this_.changePullDown( html.find( this_._discountDivPullDown ) ).trigger( 'change' ); */
    html.find( this_._discountDivPullDown ).trigger( 'change' );
    
    // bind calculate event
    bindEvent( this_, html.find( 'input:text' ) );
    
    // append to table
    var last = $( this_._soldDataSource ).find( 'tr:last' ).before( html );
    
    // 商品選択行
    hasClass ? last.removeAttr( 'class' ) : last.attr( 'class', evenLineClass );
    last.find( 'td:eq(1)' ).text( lineNo + 1 );
    
    
   });
   
   // 商品コードが重複性チェック
   Product.currentSelectProductCds = [];
   
   $( this_._soldDataSource ).find( 'tr' ).find( 'td' ).find( 'input:hidden[name$="productCd"]' ).each(function( i, n ) {
    Product.currentSelectProductCds.push( $(n).val() );
   });
  });
  
  return this_;
 };
 
 /**
  * 計算する
  *
  * @param {Object} options
  * @return {Member}
  */
 Member.fn.calculate = function( options ) {
  
  var
   setting = {
     isRefreshBgColor : false,
     isRefreshLineNo : false,
     isCalculate : true
   },
   this_ = this;
  
  setting = $.extend( setting, options );
  
  var
   // 計算データ(テーブルヘッダが除く)
   trs = $( this._soldDataSource ).find( 'tr' ).slice( 1 ),
   
   // 合計数量
   sumQty = 0,
   // 割引前合計金額
   exceptDiscountSumPrice = 0,
   // 合計割引額
   sumDiscountPrice = 0,
   // 合計金額
   sumPrice = 0,
   // 消費税額
   sumTaxPrice = 0,
   // 総額(税込)
   sumTaxIncludedPrice = 0;
   
  for ( var i = 0; i < trs.length; i++ ) {
   var
    tr = $( trs[i] ),
    tds = tr.find( 'td' );
   
   if ( setting.isRefreshLineNo ) {
    $( tds[1] ).text( i + 1 );
   }
   
   if ( setting.isRefreshBgColor ) {
    ( i + 1 ) % 2 != 0 ? tr.removeAttr( 'class' ) : tr.attr( 'class', evenLineClass );
   }
   
   if ( !setting.isCalculate ) {
    continue;
   }
   
   // is last element
   if ( i == trs.length - 1) {
    continue;
   }
   
   var
    // 商品チケット判断
    productTicketFlg = stringTrueReg.test( $.trim( $( tds[0] ).find( '[name$="productTicketFlg"]' ).val() ) ),
    // 課税区分
    taxDiv = $.trim( $( tds[0] ).find( '[name$="productTaxDiv"]' ).val() ),
    // 単価
    tradeUnitPrice = getNumeric( $( tds[6] ).find( 'input:text' ).val() ),
    // 数量
    tradeQty = getNumeric( $( tds[7] ).find( 'input:text' ).val() ),
    // 割引区分
    discountDiv = $( tds[8] ).find( 'select' ).val(),
    // 割引率
    discountRate = getNumeric( $( tds[9] ).find( 'input:text' ).val() ),
    // 割引額
    discountAmt = getNumeric( $( tds[10] ).find( 'input:text' ).val() ),
    // 明細行合計金額
    unitSumPriceExcludeDiscountPrice = 0;
   
   // 割引区分は割引率の場合
   var fn = Member.fn.discountDiv[ discountDiv ].discountRate.discountAmtCalculate;
   if ( fn ) {
    discountAmt = fn( tradeQty, tradeUnitPrice, discountRate );
    $( tds ).eq( -2 ).find( 'input:text' ).val( numberFormat( discountAmt, false, false ) + '' );
   }
   
   // 明細行合計金額
   unitSumPriceExcludeDiscountPrice = Math.floor( Math.floor( tradeUnitPrice * tradeQty ) - discountAmt );
   
   // 合計数量
   sumQty += tradeQty;
   // 割引前合計金額
   exceptDiscountSumPrice += Math.floor( tradeUnitPrice * tradeQty );
   // 合計割引額
   sumDiscountPrice += discountAmt;
   // 総額(税込) 全ての明細の「合計金額」を加算する
   sumTaxIncludedPrice += unitSumPriceExcludeDiscountPrice;
   
   $( tds ).last().text( numberFormat( unitSumPriceExcludeDiscountPrice, true, false ) + '' );
  }
 
  // 消費税額:総額(税込)x セッションから消費税率/(1+セッションから消費税率)
  sumTaxPrice = Common.Compute.taxMoneyCompute( sumTaxIncludedPrice );
  
  // 合計金額
  sumPrice = sumTaxIncludedPrice - sumTaxPrice;
  
  // 合計
  var
   trs = $( this_._soldDataDisplay ).find( 'tr' );
   tr0 = $( trs[0] ),
   tr1 = $( trs[1] );
   
      tr0.find( 'td:eq(0)' ).text( numberFormat( sumQty, false, false ) + '' );
      tr0.find( 'td:eq(1)' ).text( numberFormat( exceptDiscountSumPrice, true, false ) + '' );
      tr0.find( 'td:eq(2)' ).text( numberFormat( sumDiscountPrice, true, false ) + '' );
     
      tr1.find( 'td:eq(0)' ).text( numberFormat( sumPrice, true, false ) + '' );
      tr1.find( 'td:eq(1)' ).text( numberFormat( sumTaxPrice, true, false ) + '' );
      tr1.find( 'td:eq(2)' ).text( numberFormat( sumTaxIncludedPrice, true, false ) + '' );
  
  return this_;
 };
 
 
 Member.fn._init.prototype = Member.fn;

 // Erp.Sold.Studio.Class
 Erp.createModule( 'Member', Member, Erp.Sold.Studio );

})( window, window['jQuery'] );

############################################

3.erp.sold.company.js

/**
 * 売上物販管理
 *
 * @date 2011-03-14
 */
(function( window, $ ) {

 // 必要性JSファイルチェックする
 // 商品選択JSファイル
 if ( typeof Product == "undefined" ) {
  throw 'Product loading failed, Please to included Product.js file';
 }

 // Erp.Sold
 if ( typeof Erp.Sold == "undefined" ) {
  throw 'Erp.Sold loading failed, Please to included erp.sold.base.js file';
 }

 // 全て選択、全て未選択ボタンなど共通処理
 if ( typeof Selector == "undefined" ) {
  throw 'Selector loading failed, Please to included Selector.js file';
 }
 
 // 消費税額
 if ( typeof Common == 'undefined' ) {
  throw 'Common.Compute loading failed, Please to included compute.js file';
 }

 var
 // window alias
 w = window,

 // document alias, Use the correct document
 document = window.document,

 // 売上物販 ネームスペース
 _ns = "Company",
 
 // alias setTimeout
 setTimeout = window.setTimeout,

 // 物販
 Company = {
  
   // データ元
  dataTableId : "#dataFromTableId",
  // データ先
  resultShowId : "#dataToTableId",

  // 全て選択ボタンID
  selectAll : "#selectAll",
  // 全て未選択ボタンID
  unSelectAll : "#unSelectAll",
  // 削除ボタンID
  deleteAll : "#deleteAll",
  // 商品選択ボタン
  chooseBtn : ".chooseBtn",

  globalCount : 0
 },
 
 bindEvent = function( o ) {

  return Erp.Sold.bindEvent( o, function() {
    setTimeout(function() { Company.calculate(); }, 80);
   }).number();
 };

 /**
  * 全て選択、全て未選択ボタンなど共通処理
  *
  */
 Company.init = function() {
  // 全て選択
  $( Company.selectAll ).click( Selector.selectAll );

  // 全て未選択
  $( Company.unSelectAll ).click( Selector.unselectAll );

  // 削除ボタン
  $( Company.deleteAll ).click(function() {

   $( "input.ck:checked" ).each(function() {
    $( this ).parent( 'td' ).parent( 'tr' ).remove();
   });

   Company.countLine();
   Company.calculate();
   Company.refreshBgColor();
  });

  // 入力テキストボックスイベント
  bindEvent( $( 'table' + Company.dataTableId ).find( 'tr' ).slice( 2 ).find( 'input:text' ) );

  // tr count
  Company.globalCount = $( 'table' + Company.dataTableId ).find( 'tr' ).slice( 2 ).length;
  
  return this;
 };

 /**
  * 物販入力画面で商品選択
  *
  */
 Company.chooseProduct = function() {

  $( Company.chooseBtn ).bind('click', function() {
   Product.windowOpen('sold', undefined, undefined, function( o ) {

    var
     index = Company.globalCount++,
     payDivQtyHtml = new Erp.$sb(),
     html = new Erp.$sb();
 
    
    payDivQtyHtml
     .append( '<td class="alignRight"><input type="text" maxlength="' + Erp.Sold.maxlength.qty_limit + '" size="3" value="0" name="soldHdrBean.soldDtlList[' + index + '].cashQty" /></td>' )
     .append( '<td class="alignRight"><input type="text" maxlength="' + Erp.Sold.maxlength.qty_limit + '" size="3" value="0" name="soldHdrBean.soldDtlList[' + index + '].creditQty" /></td>' )
     .append( '<td class="alignRight"><input type="text" maxlength="' + Erp.Sold.maxlength.qty_limit + '" size="3" value="0" name="soldHdrBean.soldDtlList[' + index + '].bankQty" /></td>' );
    

    html
     .append( '<tr>' )
      .append( '<td style="display: none;">' )
       .append( '<input type="hidden" name="soldHdrBean.soldDtlList[' + index + '].productCd" value="' + o.productCd + '" />' )
       .append( '<input type="hidden" name="soldHdrBean.soldDtlList[' + index + '].productDisplayName" value="' + o.productDisplayName + '" />' )
       .append( '<input type="hidden" name="soldHdrBean.soldDtlList[' + index + '].productTaxDivName" value="' + o.taxDivDisplayName + '" />' )
       .append( '<input type="hidden" name="soldHdrBean.soldDtlList[' + index + '].productTaxDiv" value="' + o.taxDiv + '" />' )
       .append( '<input type="hidden" name="soldHdrBean.soldDtlList[' + index + '].transferDtlQty" value="" />' )
      .append( '</td>' )
      .append( '<td class="alignRight lineNo"></td>' )
      .append( '<td class="alignCenter"><input name="soldHdrBean.soldDtlList[' + index + '].ck" class="ck" type="checkbox" value="true" /></td>' )
      .append( '<td class="productCd">' + o.productCd + '</td>' )
      .append( '<td class="productDisplayName">' + o.productDisplayName + '</td>' )
      .append( '<td class="alignCenter taxDivName">' + o.taxDivDisplayName + '</td>' )
      .append( '<td class="alignRight tradeUnitPrice">¥ <input type="text" maxlength="' + Erp.Sold.maxlength.price_limit + '" size="6" name="soldHdrBean.soldDtlList[' + index + '].tradeUnitPriceStr" value="' + o.price + '"/></td>' )
      .append( payDivQtyHtml.toString() ).
      append( '<td class="alignRight">¥0</td>' )
     .append( '</tr>' );

    bindEvent( $( 'table' + Company.dataTableId ).find( 'tr:last' ).before( html.toString() ).prev().find( 'input:text' ) );
    
    Company.refreshBgColor();
    Company.countLine();
   });
   
   
   // 商品コードが重複性チェック
   Product.currentSelectProductCds = [];
   
   $( 'table' + Company.dataTableId ).find( 'tr' ).find( 'td' ).find( 'input:hidden[name$="productCd"]' ).each(function( i, n ) {
    Product.currentSelectProductCds.push( $(n).val() );
   });
  });
 };

 /**
  * 背景色をリフレッシュする(パラメタ指定しない場合、全て背景色をリフレッシュする)
  *
  * @param {Object} n tr
  * @param {Number} i
  *
  */
 Company.refreshBgColor = function( n, i ) {

  function toggleClass_( i, n ) {
   var evenClass_ = 'evenLine';

   ( i + 1 ) % 2 != 0 ? $( n ).removeAttr( 'class' ) : $( n ).removeAttr( 'class' ).attr( 'class', evenClass_ );
  }

  arguments.length == 0 ? $( 'table' + Company.dataTableId ).find( 'tr' ).slice( 2 ).each( toggleClass_ ) : toggleClass_( i, n );
 };

 /**
  * 行番号計算
  *
  * @param {Object} n tr
  * @param {Number} i
  */
 Company.countLine = function( n, i ) {

  function count_( i, n ) {
   $( n ).text( i + 1 );
  }

  arguments.length == 0 ? $( "td.lineNo" ).each( count_ ) : count_( i, $( n ).find( 'td.lineNo' ) );
 };

 /**
  * 金額計算する
  *
  * @param {Boolean} isRefresh trueの場合、背景色と行番号を再び計算する
  */
 Company.calculate = function( isRefresh ) {

  // Dom対象にJSONを変換する。
  function dom2JSON( trs ) {
   var json = [], fn = Erp.Sold.getNum;

   $.each( trs, function( i, n ) {
    if ( isRefresh ) {
     Company.refreshBgColor( n, i );
     Company.countLine( n, i );
    }

    var tr = $( n );
    
    json[ i ] = {
     soldDtlNo    : $.trim( tr.find( 'td.lineNo' ).eq( 0 ).html() ), // 売上DTL行番号
     productCd    : $.trim( tr.find( 'td.productCd' ).eq( 0 ).html() ), // 商品cd
     productDisplayName  : $.trim( tr.find( 'td.productDisplayName' ).eq( 0 ).html() ), // 商品名
     taxDivName    : $.trim( tr.find( 'td.taxDivName' ).eq( 0 ).html() ), // 課税区分名
     tradeUnitPrice   : fn( tr.find( 'td.tradeUnitPrice' ).find( 'input:text' ).eq( 0 ).val(), false ), // 単価
     payDivQtyList   : {
      cash   : fn( tr.find( 'input:text[name$="cashQty"]' ).eq( 0 ).val() ), // 現金数量
      credit : fn( tr.find( 'input:text[name$="creditQty"]' ).eq( 0 ).val() ), // クレジット数量
      bank   : fn( tr.find( 'input:text[name$="bankQty"]' ).eq( 0 ).val() )// 銀行振込数量
     },
     productSum : 0 // 毎件商品総金額
    };
   });

   return json;
  }

  function calculate( dtlList, dataFromTrs, dataTo ) {
   // セッションに設定されている消費税率
   var taxRate = Erp.Sold.getNum( $( '#currentTaxRate' ).val(), true );

   result = {
    cashSum  : 0, // 現金総額
    creditSum  : 0, // クレジット総額
    bankSum  : 0, // 銀行振込総額
    qtySum   : 0, // 数量総数
    moneySum  : 0, // 総額(税込)
    taxSumPrice : 0, // 消費税額
    taxIncludedSumPrice : 0 // 合計金額
   };

   for ( var i = 0; i < dtlList.length; i++ ) {
    var dtl = dtlList[ i ];

    // 現金金額
    result.cashSum += dtl.payDivQtyList.cash * dtl.tradeUnitPrice;

    // クレジット金額
    result.creditSum += dtl.payDivQtyList.credit * dtl.tradeUnitPrice;

    // 銀行金額
    result.bankSum += dtl.payDivQtyList.bank * dtl.tradeUnitPrice;

    // 単一物品数量総数
    var productCount = 0;
    for ( var j in dtl.payDivQtyList ) {
     // 総数
     result.qtySum += dtl.payDivQtyList[ j ];
     productCount += dtl.payDivQtyList[ j ];
    }

    // 単一物品合計金額
    dtl.productSum = productCount * dtl.tradeUnitPrice;
   }

   // 総額(税込)
   result.moneySum = result.cashSum + result.creditSum + result.bankSum;
   
   // 消費税額
   result.taxSumPrice = Common.Compute.taxMoneyCompute(result.moneySum);
   
   // 合計金額
   result.taxIncludedSumPrice = result.moneySum - result.taxSumPrice;

   // 結果表示
   fillResult( result, dtlList, dataFromTrs, dataTo );
  }

  function fillResult( result, dtl, dataFromTrs, dataTo ) {

   // 明細行表示される
   $( dataFromTrs ).each(function( i, n ) {
    var txt = Erp.Sold.numberFormat( dtl[ i ].productSum, true, true );

    if ( !$( n ).find( 'input.chooseBtn' )[ 0 ] ) {
     $( n ).find( 'td:last' ).text( txt + '' );
    }
   });

   // 摘要行表示される
   for ( var r in result ) {
    var txt = r != 'qtySum' ? Erp.Sold.numberFormat( result[ r ], true, true) : Erp.Sold.numberFormat( result[ r ], false, false);
    dataTo.find( 'td.' + r ).text( txt + '' );
   }
  }

  
  if ( $( 'table' + Company.dataTableId ).find( 'tr' ).find( Company.chooseBtn ).length > 0 ) {
   // 計算される行を取得する(テーブルヘッダーが除く)。
   var dataFromTrs = $( 'table' + Company.dataTableId ).find( 'tr' ).slice( 2, -1 );
  } else {
   // 計算される行を取得する(テーブルヘッダーが除く)。
   var dataFromTrs = $( 'table' + Company.dataTableId ).find( 'tr' ).slice( 2 );
  }
  
  var
  // convert to JSON
  soldDtlJSON = dom2JSON( dataFromTrs ),

  // 計算結果
  resultJSON = calculate( soldDtlJSON, dataFromTrs, $( Company.resultShowId ) );

  // console.log(resultJSON);
 };

 // Exposed to the global object, window.Erp.Sold
 Erp[ "createModule" ]( _ns, Company, Erp.Sold );
 
})( window, window[ "jQuery" ] );

###############################

4.stock_transfer.js

(function($){
 
 var StockTransfer = {
 
  Params : {
  
   prifix : "",
   
   index : 0
  },
  
  /**
   * 移動一覧
   */
  Search : {
   
   selectProduct : function(prefix) {
   
    StockTransfer.Params.prifix = prefix;
    Product.windowOpen(
      'other',
      '',
      '',
      function(jsonObj) {
       $("#"+StockTransfer.Params.prifix +"ProductCd").val(jsonObj.productCd) ;
             $("#"+StockTransfer.Params.prifix +"ProductDisplayName").val(jsonObj.productDisplayName);
      }
    );
    
   },
  
   detail : function(transferNo,formId,url) {
     $('#'+formId).find('#transferNo').val(transferNo);
     $('#'+formId).attr('action',url);
     $('#'+formId).submit();
   }
  },
  
  /**
   * 移動出庫
   */
  Out : {
   
   init : function() {
    
    $("#transferDivPulldown").trigger("change");
    
    StockTransfer.Common.init();
   },
   
   transferDivChanged : function(dom) {
    
    var val = parseInt($(dom).val());
    
    if(val == 0){
     //移動区分が「社内間移動」の場合
     //all option append
     var optionHtml = $("#facilityHidden").html();
     $('#facilityPulldown').empty().append(optionHtml);
     
     //移動先(有効)
     $('#clientPulldown').removeAttr('disabled');
 
    }else if (val == 1 || val == 2){
     //移動区分が「持ち出し」or「その他」の場合
     
     //移動元(有効):本社 or 自スタジオ  only one option
     var firstOption = $("#facilityHidden option:first");
     $('#facilityPulldown').empty().append($('<option />').text(firstOption.text()).attr("value",firstOption.val()));
     
     //移動先(無効):ブランク
     $('#clientPulldown option:first').prop('selected',true);
     $('#clientPulldown').attr('disabled','true');
    }
   },
   
   
   selectProduct : function() {
    
    Product.windowOpen('move', $('#facilityPulldown').val().split("_")[0], '', this.callBack);
    StockTransfer.Common.setExistentProductCds();
   },
   
   callBack : function(jsonObj) {
    
    var $tr = $("#productTemplate tr").clone(true);
    
    // set value of visible params
    $tr.find("span.productCd").text(jsonObj.productCd);
    $tr.find("span.productDisplayName").text(jsonObj.productDisplayName);
    $tr.find("span.taxDiv").text(jsonObj.taxDivDisplayName);
    $tr.find("span.unitPrice").text(jsonObj.price);
    $tr.find("span.activeQty").text(jsonObj.activeStockQty);
    $tr.find("span.surplusQty").text(jsonObj.activeStockQty-1);
    $tr.find("span.sumPrice").text(NumberFormat.addCommas(jsonObj.price));
    $tr.find("input.transferQty").val(1);
    
    // set name of hidden params
    $tr.find(".ck").attr('name',StockTransfer.Params.prifix+"["+StockTransfer.Params.index+"].checkFlg");
    $tr.find("input.productCd").attr('name',StockTransfer.Params.prifix+"["+StockTransfer.Params.index+"].productCd");
    $tr.find("input.productDisplayName").attr('name',StockTransfer.Params.prifix+"["+StockTransfer.Params.index+"].productDisplayName");
    $tr.find("input.taxDiv").attr('name',StockTransfer.Params.prifix+"["+StockTransfer.Params.index+"].taxDiv");
    $tr.find("input.unitPrice").attr('name',StockTransfer.Params.prifix+"["+StockTransfer.Params.index+"].amt");
    $tr.find("input.activeQty").attr('name',StockTransfer.Params.prifix+"["+StockTransfer.Params.index+"].activeQty");
    $tr.find("input.transferQty").next().attr('name',StockTransfer.Params.prifix+"["+StockTransfer.Params.index+"].qtyStr");
    StockTransfer.Params.index++;
    
    // set value of hidden params
    $tr.find("input.productCd").val(jsonObj.productCd);
    $tr.find("input.productDisplayName").val(jsonObj.productDisplayName);
    $tr.find("input.taxDiv").val(jsonObj.taxDiv);
    $tr.find("input.unitPrice").val(jsonObj.price);
    $tr.find("input.activeQty").val(jsonObj.activeStockQty);
    $tr.find("input.transferQty").next().val(1);
    $tr.find("input.sumPrice").val(jsonObj.price);
    
    $tr.find("input.transferQty").eq(0).bind("focusout",function(){StockTransfer.Out.subtotal(this);});
    
    
    $("#productTable tr:last").before($tr);
    StockTransfer.Common.resetLineNo();
    StockTransfer.Common.resetLineCss();
    
    //合計計算
    StockTransfer.Common.total();
   },
   
   subtotal : function(dom) {
    
    
    var $currLine = $(dom).parents("tr") ,
     transferQty = Number($(dom).val()) || 0 ,
     unitPrice = Number($currLine.find('input.unitPrice').eq(0).val()),
     activeQty = Number($currLine.find('input.activeQty').eq(0).val());
    
    transferQty = transferQty < 0 ? 0 : transferQty;
    
    
    var sumPrice = unitPrice*transferQty;
    
    //合計金額
    $currLine.find('span.sumPrice').text(NumberFormat.addCommas(sumPrice));
    $currLine.find('input.sumPrice').val(sumPrice);
    
    //移動後在庫数量
    $currLine.find('span.surplusQty').text(activeQty - transferQty);
    
    //移動数量
    //移動数量Hidden
    $(dom).val() == "" ? $(dom).next().val("") : $(dom).next().val(transferQty);
    
    //合計計算
    StockTransfer.Common.total();
   }
   
  },
  
  In : {
   
   transferDivChanged : function(dom) {
    
    //revert to initial value each time
    $('span.transferNo').text("");
    $('input.transferNo').val("");
    $('#facilityPulldown').removeAttr('disabled');
    $('#clientPulldown').removeAttr('disabled');
    $('#facilityPulldown option:first').prop("selected",'true');
    $('#clientPulldown option:first').prop("selected",'true');
    $('#barcode').removeAttr('disabled').val("");
    $('#ok').removeAttr('disabled');
    $('#selectAll').removeAttr('disabled');  //「全て選択」ボタン
    $('#unselectAll').removeAttr('disabled'); //「全て未選択」ボタン
    $('#deleteBtn').removeAttr('disabled');     //「削除」ボタン
    $('#selectProduct').removeAttr('disabled'); //「商品選択」ボタン
    Selector.selectAll();
    StockTransfer.Common.deleteSelected();
    
    
    $("#transferDiv").val($(dom).val());
    
    var value = parseInt($(dom).val());
    
    if(value == 0 ){
     
     //移動区分が「社内間移動」の場合
     //下記表示項目を非活性に設定する
     $('#facilityPulldown').attr('disabled','true');  //「移動元」項目
     $('#clientPulldown').attr('disabled','true');  //「移動先」項目
     $('#selectAll').attr('disabled','true'); //「全て選択」ボタン
     $('#unselectAll').attr('disabled','true'); //「全て未選択」ボタン
     $('#deleteBtn').attr('disabled','true'); //「削除」ボタン
     $('.ck').each(function(){     //「削除選択」チェックボックス
      $(this).attr('disabled','true');
     }); 
     $('input.transferQty').each(function(){  //「数量」項目
      $(this).attr('disabled','true');
     }); 
     $('#selectProduct').attr('disabled','true');//「商品選択」ボタン
     
     //下記表示項目を有効に設定する
     $('#barcode').removeAttr('disabled'); //「移動伝票バーコード」項目
     $('#ok').removeAttr('disabled');  //「OK」ボタン
     
     alert("移動伝票バーコードを入力してください。");
     
    }else if (value == 1) {
     //移動区分が「その他」の場合
     //下記表示項目を非活性に設定する
     $('#facilityPulldown').attr('disabled','true');  //「移動元」項目
     $('#barcode').attr('disabled','true');  //「移動伝票バーコード」項目
     $('#ok').attr('disabled','true');   //「OK」ボタン
     
     //下記表示項目を有効に設定する
     $('#clientPulldown').removeAttr('disabled');  //「移動先」項目
     $('#selectAll').removeAttr('disabled');  //「全て選択」ボタン
     $('#unselectAll').removeAttr('disabled'); //「全て未選択」ボタン
     $('#deleteBtn').removeAttr('disabled'); //「削除」ボタン
     $('.ck').each(function(){     //「削除選択」チェックボックス
      $(this).removeAttr('disabled');
     }); 
     $('input.transferQty').each(function(){  //「数量」項目
      $(this).removeAttr('disabled');
     });
     $('#selectProduct').removeAttr('disabled'); //「商品選択」ボタン
     
    }else if (value == 2){
     //移動区分が「持ち出し」の場合
     //下記表示項目を非活性に設定する
     $('#facilityPulldown').attr('disabled','true');  //「移動元」項目
     $('#clientPulldown').attr('disabled','true');  //「移動先」項目
     $('#selectAll').attr('disabled','true'); //「全て選択」ボタン
     $('#unselectAll').attr('disabled','true'); //「全て未選択」ボタン
     $('#deleteBtn').attr('disabled','true'); //「削除」ボタン
     $('.ck').each(function(){     //「削除選択」チェックボックス
      $(this).attr('disabled','true');
     }); 
     $('#selectProduct').attr('disabled','true');//「商品選択」ボタン
     
     //下記表示項目を有効に設定する
     $('#barcode').removeAttr('disabled');  //「移動伝票バーコード」項目
     $('#ok').removeAttr('disabled');   //「OK」ボタン
     $('input.transferQty').each(function(){  //「数量」項目
      $(this).removeAttr('disabled');
     });
     
     alert("移動伝票バーコードを入力してください。");
    }
    
   },
   
   selectProduct : function() {
    
    Product.windowOpen('move', $("#clientPulldown").val().split("_")[0], '', this.callBack);
    StockTransfer.Common.setExistentProductCds();
   },
   
   callBack : function(jsonObj) {
    
    var $tr = $("#productTemplate tr").clone(true);
    
    // set value of visible params
    $tr.find("span.productCd").text(jsonObj.productCd);
    $tr.find("span.productDisplayName").text(jsonObj.productDisplayName);
    $tr.find("span.taxDiv").text(jsonObj.taxDivDisplayName);
    $tr.find("span.unitPrice").text(jsonObj.price);
    $tr.find("span.sumPrice").text(NumberFormat.addCommas(jsonObj.price));
    $tr.find("input.transferQty").val(1);
    
    // set name of hidden params
    $tr.find(".ck").attr('name',StockTransfer.Params.prifix+"["+StockTransfer.Params.index+"].checkFlg");
    $tr.find("input.productCd").attr('name',StockTransfer.Params.prifix+"["+StockTransfer.Params.index+"].productCd");
    $tr.find("input.productDisplayName").attr('name',StockTransfer.Params.prifix+"["+StockTransfer.Params.index+"].productDisplayName");
    $tr.find("input.taxDiv").attr('name',StockTransfer.Params.prifix+"["+StockTransfer.Params.index+"].taxDiv");
    $tr.find("input.unitPrice").attr('name',StockTransfer.Params.prifix+"["+StockTransfer.Params.index+"].amt");
    $tr.find("input.transferQty").next().attr('name',StockTransfer.Params.prifix+"["+StockTransfer.Params.index+"].qtyStr");
    StockTransfer.Params.index++;
    
    // set value of hidden params
    $tr.find("input.productCd").val(jsonObj.productCd);
    $tr.find("input.productDisplayName").val(jsonObj.productDisplayName);
    $tr.find("input.taxDiv").val(jsonObj.taxDiv);
    $tr.find("input.unitPrice").val(jsonObj.price);
    $tr.find("input.transferQty").next().val(1);
    $tr.find("input.sumPrice").val(jsonObj.price);
    
    $tr.find("input.transferQty").eq(0).bind("focusout",function(){StockTransfer.In.subtotal(this);});
    
    
    $("#productTable tr:last").before($tr);
    StockTransfer.Common.resetLineNo();
    StockTransfer.Common.resetLineCss();
    
    //合計計算
    StockTransfer.Common.total();
    
   },
   
   
   subtotal : function(dom) {
    var $currLine = $(dom).parents("tr") ,
    transferQty = Number($(dom).val()) || 0 ,
    unitPrice = Number($currLine.find('input.unitPrice').eq(0).val()),
    activeQty = Number($currLine.find('input.activeQty').eq(0).val());
    
    transferQty = transferQty < 0 ? 0 : transferQty;
    
    var sumPrice = unitPrice*transferQty;
    
    //合計金額
    $currLine.find('span.sumPrice').text(NumberFormat.addCommas(sumPrice));
    $currLine.find('input.sumPrice').val(sumPrice);
    
    //移動数量Hidden
    $(dom).val() == "" ? $(dom).next().val("") : $(dom).next().val(transferQty);
    
    //合計計算
    StockTransfer.Common.total();
   }
  },
  
  
  Common : {
   
   resetLineNo : function() {
    
    $("#productTable tr").each(function(i){
     $(this).find("span.lineNo").text(i);
    });
   },
   
   resetLineCss : function(){
    
    $("#productTable tr:odd").removeClass("evenLine");
    $("#productTable tr:even").addClass("evenLine");
    
   },
   
   init : function() {
    
    this.resetLineNo();
    
    this.resetLineCss();
    
    $("input.transferQty").number();
    
    StockTransfer.Params.prifix = "transferHdr.transferDtlList";
    
    if($("#productTable tr").size()>2){
     StockTransfer.Params.index = $("#productTable tr").size() - 2;
    }
   },
   
   setExistentProductCds : function() {
    
    var productCds = new Array();
    
    $("#productTable span.productCd").each(function(i){
     productCds[i] = $(this).text();
    });
    
    Product.currentSelectProductCds = productCds;
   },
   
   deleteSelected : function() {
    
    Selector.delSelected();
    
    this.resetLineNo();
    this.resetLineCss();
    
    //合計計算
    this.total();
   },
   
   total : function() {

    var totalQty = 0,totalAmt = 0,totalTax = 0,amtWithOutTax = 0;
    
    $("#productTable").find("input.transferQty").each(function(){
     totalQty += Number($(this).val());
    }); 
    
    $("#productTable").find("input.sumPrice").each(function(){
     
     totalAmt +=Number($(this).val());
    }); 
    
    totalTax = Common.Compute.taxMoneyCompute(totalAmt);
    
    amtWithOutTax = Common.Compute.totalMoneyCompute(totalAmt,totalTax);
    
    //移動数量
    $("span.qty").text(totalQty);
    
    //総額(税込)
    $("span.sumAmt").text(NumberFormat.addCommas(totalAmt));
    
    //合計金額
    $("span.amt").text(NumberFormat.addCommas(amtWithOutTax));
    
    //消費税額
    $("span.taxAmt").text(NumberFormat.addCommas(totalTax));

   }
  }
  
 };
 
 
 window.StockTransfer = StockTransfer;


})(jQuery);

######################

ticket.js

/**
 * チケット管理
 *
 * @date 2010-04-20
 * @author
 */
var TicketControl = {
 //仕入払出区分
 mode : {
  INPUT : {
   name : "仕入",
   value : 1
  },
  OUTPUT : {
   name : "払出",
   value : 2
  }
  
 },
 //期限月日区分
 discountDiv : {
  DiscountNo : {
   name : "月",
   value : 0
  },
  Discount : {
   name : "日",
   value : 1
  }
  
 },
 // 期限月日区分場合によって 期限月日変化 
 dateChange : function(){
  var temp = $('#startDay').val();
  if(TicketControl.mode.INPUT.value == $('#modeType').val()){
   $('input.inDay').val(temp);
  }else if(TicketControl.mode.OUTPUT.value == $('#modeType').val()){
   $('input.outDay').val(temp);
  }
 },
 // 期限月日区分
 radioChange : function(value) {
  if (TicketControl.discountDiv.DiscountNo.value == value) {
   $('#month').show();
   $('#day').val('');
   $('#day').hide();

  } else if (TicketControl.discountDiv.Discount.value == value) {
   $('#month').val('');
   $('#month').hide();
   $('#day').show();
  }

 },
 // 仕入払出区分によって、画面項目動態処理
 changeMode : function(mode) {
  if (mode == TicketControl.mode.INPUT.value) {
   $('#inputDay').show();
   $('#outDay').hide();
   $('#from_list').val('');
   $('#to_list').val('');
   $('#FromL').hide();
   $('#TOL').hide();
   $("#from_list").attr("disabled", "disabled");
   $("#to_list").attr("disabled", "disabled");

  } else if (mode == TicketControl.mode.OUTPUT.value) {
   $('#outDay').show();
   $('#inputDay').hide();
   $('#FromL').show();
   $('#TOL').show();
   $("#from_list").removeAttr("disabled", "");
   $("#to_list").removeAttr("disabled", "");
  }

 },
 // 仕入後枚数= 在庫枚数 + 仕入枚数
 add : function(element) {
  var reNum = /^[0-9]+$/;
  var _parentTr = $(element).parent('td').parent('tr');
  amt = _parentTr.find('.amt').val();
  inAmt = _parentTr.find('.inAmt').val();
  if (undefined == inAmt || '' == inAmt || !reNum.test(inAmt)) {
   inAmt = 0;
  }
  outAmt = parseInt(amt, 10) + parseInt(inAmt, 10);
  _parentTr.find('input.outAmt').val(outAmt);
  _parentTr.find('span.outAmt').html(outAmt);

 },
 // チケット管理:チケット分配入力の分配後枚数変化
 minus : function(element) {
  var reNum = /^[0-9]+$/;
  var _parentTr = $(element).parent('td').parent('tr');
  var amt = _parentTr.find('input.amt1').val();
  var inAmt = _parentTr.find('input.inAmt1').val();
  if (undefined == inAmt || '' == inAmt || !reNum.test(inAmt)) {
   inAmt = 0;
  }
  // 分配元:分配後枚数 = 在庫枚数-分配枚数
  var outAmt = parseInt(amt, 10) - parseInt(inAmt, 10);
  _parentTr.find('input.outAmt1').val(outAmt);
  _parentTr.find('span.outAmt1').text(outAmt);

  var amt2 = _parentTr.find('input.amt2').val();
  if (undefined == amt2 || '' == amt2 || !reNum.test(amt2)) {
   amt2 = 0;
  }
  // 分配先:分配後枚数 = 在庫枚数+分配枚数
  var outAmt1 = parseInt(amt2, 10) + parseInt(inAmt, 10);
  _parentTr.find('input.amt3').val(outAmt1);
  _parentTr.find('span.amt3').text(outAmt1);
  
 },
 clear : function(formId) {

  $('#' + formId).find('input[type="text"]').val('');

  $('#' + formId).find('input[type="checkbox"]').attr('checked', '');

  $('#' + formId).find('select').attr('value', '');

 },
 checkInput : function(callbackFunction) {

  var passThrough = true;
  var reNum = /^[0-9]+$/;
  var modeType = $('.modeType').val();
  if (passThrough) {
   callbackFunction();
  }

 },
 submit : function() {
  commonForm.Submit('ticketGroupInput', $('#toAddConfirmUrl').val());
  commonForm.Submit('ticketGroupInput', $('#toEditConfirmUrl').val());
 },
 // 券種マスタ:追加:小カテゴリによって、期限月日区分の変化
 doNotDisable : function() {
  var ticketName = $("#smallFixture").find("option:selected").text();
  if (ticketName != "チケット") {
   $(".dayMonth").each(function() {
    $(this).attr("checked", "checked");
    var temp = $(this)[0];
    temp.checked = false;
    temp = null;
   });
   $(".monthDay").val('');
   $(".dayMonth").attr("disabled", true);
   $(".monthDay").attr("disabled", true);
  } else {
   $(".dayMonth").removeAttr("disabled", "");
   $(".monthDay").removeAttr("disabled", "");
  }
 }

};
/**
 * 6.画面要素名:会員選択
 */
var MemberSearch = {
 
  f1 : function(){
    Member.Search.windowOpen(this.f2);
  },
 
  f2 : function(jsonVal){
   $("#mid").text(jsonVal.id);
   $("#memberIdT").val(jsonVal.id);
   $("#mName").text(jsonVal.fullNameKanji);
  }
 
};

var CancelButton = {
 
  submit : function(formid , url){
   
   var useDate = $("#userDate").val();
   var useDateTemp = useDate.replace(new RegExp("/","g"),"");
   var d = new Date();
   var year = d.getFullYear();
   var month = d.getMonth()+1+"";
   if (month.length < 2){
    month = "0" + month;
   }
   var date = d.getDate();
   if (date.length < 2){
    date = "0" + date;
   }
   var sysTime = year + '' +month + '' + date;
   if(useDateTemp < sysTime){
    var answer = confirm("表示されているチケットは期限切となりますが、よろしいですか?");
    if (answer){
     commonForm.Submit(formid,url);
    }
   } else {
    commonForm.Submit(formid,url);
   }
  }
};

$(function() {
 /* 券種マスタ:追加 check */
 $('#largeFixtureName').val($('#largeFixture option:selected').text());
 $('#midiumFixtureName').val($('#midiumFixture option:selected').text());
 $('#smallFixtureName').val($('#smallFixture option:selected').text());
 $('#times,#ticketPrice,#localTicketPrice,#addSoldAmt,#saleDiv,#sort').number();
 $('#facilityFromName').val($('#from_list option:selected').text());
 $('#facilityToName').val($('#to_list option:selected').text());
 $('#inputAmt').each(function() {
  $(this).find('.inAmt').number();
 });
 $('#inputAmt1').each(function() {
  $(this).find('.inAmt1').number();
 });

});

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
后台采用apache服务器下的cgi处理c语言做微信小程序后台逻辑的脚本映射。PC端的服务器和客户端都是基于c语言写的。采用mysql数据库进行用户数据和聊天记录的存储。.zip C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言用于封装代码的单元,可以实现代码的复用和模块化。C语言定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言用于存储同类型数据的结构,可以通过索引访问和修改数组的元素。字符串是C语言用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值