⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gbs_priceeditcpcpriceaction.java

📁 对日软件外包 为东芝做的一个全球商业管理系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package ACTION;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import COMMON.BaseCommonCheck;
import COMMON.BaseDispatchAction;
import COMMON.MessageList;
import COMMON.ReturnValue;
import COMMON.SystemConstants;
import DataBean.GBS_CPCPrice_stBean;
import DataBean.GBS_LittleCPCPrice_stBean;
import DataBean.GBS_LittleCountry_stBean;
import DataBean.GBS_MWideUse_stBean;
import DataBean.GBS_ProductCPCPriceList_stBean;
import DataBean.GBS_TProductPrice_stBean;
import LOGIC.GBS_PriceEditHardwareORCPCActionLogic;
/**
 * public class GBS_PriceEditCPCPriceAction extends BaseDispatchAction implements SystemConstants
 * created on 07-30-2004
 * @author   wxf
 * @version  1.0
 */
public class GBS_PriceEditCPCPriceAction extends BaseDispatchAction implements SystemConstants {

	// --------------------------------------------------------- Instance Variables

	// --------------------------------------------------------- Methods
	/**
	 * init page  
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	public ActionForward init(
			ActionMapping mapping,
			ActionForm form,
			HttpServletRequest request,
			HttpServletResponse response)
			throws Exception {
          	
	  log.info("[location info]GBS_PriceEditCPCPriceAction.init method!");
    
	  GBS_PriceEditCPCPriceForm thisForm = (GBS_PriceEditCPCPriceForm) form;
	  
	  //get login user info from session
	  this.setUserInfoFromSession( request, thisForm);
     
	  //get combox value from database
	  GBS_PriceEditHardwareORCPCActionLogic logic 
	  			= new GBS_PriceEditHardwareORCPCActionLogic(this.getDataSource(request));
	  thisForm = getCombox( thisForm, logic);
	  
	  return (mapping.findForward(nextview));
    
	}	
	
	/**
	 * search page  
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 * @throws Exception
	 */
	public ActionForward search(
			ActionMapping mapping,
			ActionForm form,
			HttpServletRequest request,
			HttpServletResponse response)
			throws Exception {
          	
	  log.info("[location info]GBS_PriceEditCPCPriceAction.search method!");
    
	  GBS_PriceEditCPCPriceForm thisForm = (GBS_PriceEditCPCPriceForm) form;
	 
	  GBS_PriceEditHardwareORCPCActionLogic logic = new GBS_PriceEditHardwareORCPCActionLogic(this.getDataSource(request));
		
	  thisForm=getCombox(thisForm,logic);
	  
	  ReturnValue ret = logic.getEditCPCInfo( thisForm.getCountryCode() );// get CPC price inforamtion
	  if ( ret.isError() ){
		if ( ret.isBussinessError() ){
			this.setMessage( ret.getMessageList() );
		}
		//getErrorCode ,getErrorMessage傪張棟
	  }else{
		ArrayList CPCPrice_stList = (ArrayList)ret.getDataValue();
		if( CPCPrice_stList != null && CPCPrice_stList.size() > 0 ){
		  thisForm= toTree(thisForm, CPCPrice_stList);
		  //get LocalCurencyName
		  ret = logic.getLocalCurencyName("CURRENCY");
		  if ( ret.isError() ){
			  if ( ret.isBussinessError() ){
				  this.setMessage( ret.getMessageList() );
			  }
		  }else{
			  ArrayList localCurencyNameList = new ArrayList();
			  localCurencyNameList = (ArrayList)ret.getDataValue();
			  GBS_MWideUse_stBean mWideUse_st = new GBS_MWideUse_stBean();
			  for(int i=0;i<localCurencyNameList.size();i++){
				mWideUse_st = (GBS_MWideUse_stBean)localCurencyNameList.get(i);
				if(thisForm.getLocalCurrency().equals(mWideUse_st.getMainKey())){
					thisForm.setLocalCurrencyName(mWideUse_st.getString1());
				}
			  }
		  }
		}else{
		  this.setMessage( "","","10000001",Integer.MIN_VALUE );
		  thisForm.setLocalCurrencyName("");
		  thisForm.setLocalCurrency("");
		  thisForm.setRateUS("");
		  thisForm.setRateEURO("");
		}
	  }

	  return (mapping.findForward(nextview));
	}

	/**
	 * Method submit
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 * @throws Exception
	 */
	public ActionForward submit(
			ActionMapping mapping,
			ActionForm form,
			HttpServletRequest request,
			HttpServletResponse response)
			throws Exception {
          	
	  log.info("[location info]GBS_PriceEditCPCPriceAction.submit method!");
    
	  GBS_PriceEditCPCPriceForm thisForm = (GBS_PriceEditCPCPriceForm) form;
    
	  //get login user info from session
	  this.setUserInfoFromSession( request, thisForm);

	  
	  MessageList errorMsg = new MessageList();
	  errorMsg = inputCheck(thisForm, request);
	  if ( errorMsg.size() > 0) {
		//save error to request
		this.setMessage( errorMsg );
		thisForm = returnAllData(thisForm,request);
		return (mapping.findForward(nextview));
	  }
				  
	  GBS_PriceEditHardwareORCPCActionLogic logic = new GBS_PriceEditHardwareORCPCActionLogic(this.getDataSource(request));
	  GBS_TProductPrice_stBean tProductPrice_st =new GBS_TProductPrice_stBean();

	  String[] localPrice = thisForm.getLocalPrice();//尰抧捠壿
	  String[] priceCategory = thisForm.getPriceCategory();//扨壙暘椶
	  String[] USPrice    = thisForm.getUSPrice();//US$扨壙
	  String[] EUROPrice  = thisForm.getEUROPrice();//Euro扨壙
	  String[] productID  = thisForm.getProductID();//惢昳ID
	  String rateUS  	  = thisForm.getRateUS();
	  String rateEURO 	  = thisForm.getRateEURO();

	  ArrayList submitData = new ArrayList();
	  if(priceCategory.length>1){
		int indexOfProductID = 0;
		for(int i = 1;i < priceCategory.length;i++ ){
			indexOfProductID = (i-1)/4 +1;
			tProductPrice_st =new GBS_TProductPrice_stBean();
			if(
				(localPrice[i].equals("") || localPrice[i].equals("0"))
				&&(USPrice[i].equals("")  || USPrice[i].equals("0"))
				&&(EUROPrice[i].equals("")|| EUROPrice[i].equals("0"))
				&&(rateUS.equals("")   	  ||rateUS.equals("0"))
				&&(rateEURO.equals("")    ||rateEURO.equals("0"))){
					//continue;
			}
			tProductPrice_st.setProductID(productID[indexOfProductID]);//惢昳ID
			tProductPrice_st.setCountryCode(thisForm.getCountryCode());//崙僐乕僪
			tProductPrice_st.setPriceCategory(priceCategory[i]);//扨壙暘椶
			tProductPrice_st.setLocalCurregcy(thisForm.getLocalCurrency());//尰抧捠壿
			tProductPrice_st.setLocalPrice(remove(localPrice[i],','));//尰抧扨壙
			tProductPrice_st.setUSPrice(remove(USPrice[i],','));//US$扨壙
			tProductPrice_st.setEUROPrice(remove(EUROPrice[i],','));//Euro扨壙
			tProductPrice_st.setRateUS(remove(thisForm.getRateUS(),','));//愝掕帪偺儗乕僩乮懳US)
			tProductPrice_st.setRateEURO(remove(thisForm.getRateEURO(),','));//愝掕帪偺儗乕僩乮懳EURO)
			tProductPrice_st.setUserID(thisForm.getLoginUserId());//儐乕僓乕ID
			
			//  is the record  exist ?
			ReturnValue ret = logic.selectOneByMaxDate(tProductPrice_st);
			GBS_TProductPrice_stBean dbOut = (GBS_TProductPrice_stBean)ret.getDataValue();
		
			if(dbOut.getProductID() == null || dbOut.getProductID().equals("")){
				if(!BaseCommonCheck.isEmpty(remove(tProductPrice_st.getLocalPrice(),','))
					|| !BaseCommonCheck.isEmpty(remove(tProductPrice_st.getUSPrice(),','))
					|| !BaseCommonCheck.isEmpty(remove(tProductPrice_st.getEUROPrice(),','))){
						submitData.add(tProductPrice_st);// add it into insert list.
				}
			}else if(! tProductPrice_st.getLocalCurregcy().equals(dbOut.getLocalCurregcy())// local curregcy changed.
					|| ! remove(tProductPrice_st.getLocalPrice(),',').equals(dbOut.getLocalPrice())// local price changed.
					|| ! remove(tProductPrice_st.getUSPrice(),',').trim().equals(dbOut.getUSPrice())// US price changed.
					|| ! remove(tProductPrice_st.getEUROPrice(),',').trim().equals(dbOut.getEUROPrice())
					|| ! remove(tProductPrice_st.getRateUS(),',').trim().equals(dbOut.getRateUS())// US rate changed.
					|| ! remove(tProductPrice_st.getRateEURO(),',').trim().equals(dbOut.getRateEURO())){
						submitData.add(tProductPrice_st);// add it into insert list.	
			}

		}
		ReturnValue ret = logic.submit( thisForm.getLoginUserId(), submitData); //insert data into database.
		if ( ret.isError() ){
			if ( ret.isBussinessError() ){
				this.setMessage( ret.getMessageList() );
			}
			thisForm = this.returnAllData(thisForm,request);
			return (mapping.findForward(nextview));
		}
	  }
	  thisForm.setMethod("close");
	  return (mapping.findForward(nextview));
	}

	/**
	 * inputCheck
	 * @param thisForm GBS_LoginForm
	 * @param request HttpServletRequest
	 * @throws Exception
	 * @return MessageList
	 */
	private MessageList inputCheck(GBS_PriceEditCPCPriceForm thisForm,
									HttpServletRequest request) throws Exception {
	  
		//create ErrorMessages to display error message
		MessageList messages = new MessageList();
		String[] localPrice = thisForm.getLocalPrice();
		String[] USPrice    = thisForm.getUSPrice();
		String[] EUROPrice  = thisForm.getEUROPrice();
		String rateEURO     = remove(thisForm.getRateEURO(),',');
		String rateUS       = remove(thisForm.getRateUS(),',');

		//rateEURO's check on number yes or no  and lower then  max digital.
		if(BaseCommonCheck.isEmpty(rateEURO)){
			//messages.setMessage("rateEURO",rateEURO, "10000009", Integer.MIN_VALUE,new Object[]{ "Currency rate" }, "rateEURO");
		}else if(!BaseCommonCheck.isFloat(rateEURO) ){
			messages.setMessage("rateEURO",rateEURO,"90000010",Integer.MIN_VALUE);
		}else if(new Double(rateEURO).doubleValue() > MAXPRICEORRATE){
			messages.setMessage("rateEURO",rateEURO,"90000037",Integer.MIN_VALUE);
		}else if(new Double(rateEURO).doubleValue() <= 0){
			messages.setMessage("rateEURO",rateEURO,"90000015",Integer.MIN_VALUE);
		}

		//rateUS's check on number yes or no  and lower then  max digital.
		if(BaseCommonCheck.isEmpty(rateUS)){
			//messages.setMessage("rateUS",rateUS, "10000009", Integer.MIN_VALUE,new Object[]{ "Currency rate" }, "rateUS");
		}else if(!BaseCommonCheck.isFloat(rateUS) ){
			messages.setMessage("rateUS",rateUS,"90000010",Integer.MIN_VALUE);
		}else if(new Double(rateUS).doubleValue() > MAXPRICEORRATE){
			messages.setMessage("rateUS",rateUS,"90000037",Integer.MIN_VALUE);
		}else if(new Double(rateUS).doubleValue() <= 0){
			messages.setMessage("rateUS",rateUS,"90000015",Integer.MIN_VALUE);
		}
		
		for(int i=1;i< localPrice.length;i++){
			String strLocalPrice = remove(localPrice[i],',');
			String strUSPrice    = remove(USPrice[i],',');
			String strEUROPrice  = remove(EUROPrice[i],',');
			//localPrice's check on number yes or no  and lower then  max digital.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -