import java.math.BigDecimal;

import com.softwareag.entirex.aci.Broker;
import com.softwareag.entirex.aci.BrokerException;

/**
 * <p>Titre : Jwlwcdm2Web</p>
 * <p>Description : Mise a jour des sous-commandes.
 * 		 Incluant la duplication d une sous-commande.
 * </p>
 * <p>Copyright : Copyright (c) 2012</p>
 * <p>Societe : ENSOR</p>
 * @author AR & DR & PY <i>14/09/2012</i>
 * @version 1.0
 */
 
public class Jwlwcdm2Web {
	/**
	 * <p>Titre : setListeSousCommandes</p>
	 * <p>Copyright : Copyright (c) 2012</p>
	 * <p>Societe : ENSOR</p>
	 * @author AR & DR & PY <i>14/09/2012</i>
	 * @version 1.0
	 */
	public static Jwlwcdm2 setListeSousCommandes(
		String fonction,
		String i_cd_cible,
		String i_id_cmd,
		String i_id_sscmd,
		String i_type_sscmd,
		String f_num_edt,
		String f_cd_promo,
		String f_lbl_promo,
		String f_top_inclus,
		String f_top_societe,
		String f_top_carnet,
		String f_top_grand_compte,
		String f_type_promo,
		String f_top_coiffe,
		String f_qte_promo,
		String f_poids,
		String groupe_exploitant,
		String numero_session,
		String utilisateur,
		String cd_cible,
		String cd_stegrp,
		Broker broker) throws BrokerException {
		// Initialisation des variables en entrees
	    Jwlwcdm2 jwlwcdm2 		  = new Jwlwcdm2(broker, Constantes.SERVER_ADRESSE);	
		// Initialisation de la vWebent depuis les informations de connexion
		Jwlwcdm2.Nwlwcdm2Axwebent vWebent = jwlwcdm2.new Nwlwcdm2Axwebent();
		vWebent.dbid 			  = new BigDecimal (Constantes.DBID);
		vWebent.cible_exploitant  = Constantes.CD_CIBLE;
		vWebent.groupe_exploitant = groupe_exploitant;
		vWebent.numero_session 	  = new BigDecimal (numero_session);
		vWebent.utilisateur    	  = utilisateur;
		vWebent.transaction 	  = "WLWSTLST";
		vWebent.fonction 		  = fonction;
		vWebent.cd_cible 		  = cd_cible;
		vWebent.cd_stegrp 		  = cd_stegrp;
		vWebent.cd_application 	  = Constantes.CD_APPLICATION;
		jwlwcdm2.setNwlwcdm2Axwebent (vWebent);
		
		// Initialisation de la demande (tous a vide pour l instant)
		Jwlwcdm2.Nwlwcdm2Awlwcdm2 vLwcdm2 				= jwlwcdm2.new Nwlwcdm2Awlwcdm2();
		Jwlwcdm2.Nwlwcdm2Awlwcdm2Demande vLwcdm2Demande = jwlwcdm2.new Nwlwcdm2Awlwcdm2Demande();
		Jwlwcdm2.Nwlwcdm2Awlwcdm2Reponse_sscmd vLwcdm2reponse = jwlwcdm2.new Nwlwcdm2Awlwcdm2Reponse_sscmd();
		
		vLwcdm2Demande.i_cd_cible = i_cd_cible;
		
		if(!"".equals(i_id_cmd) && i_id_cmd!=null){
			vLwcdm2Demande.i_id_cmd = new BigDecimal(i_id_cmd) ;
		}
		
		if(!"".equals(i_id_sscmd) && i_id_sscmd!=null){
			vLwcdm2Demande.i_id_sscmd = new BigDecimal(i_id_sscmd) ;
		}
		

		if(!"".equals(f_num_edt) && f_num_edt!=null){
			vLwcdm2reponse.num_edt = new BigDecimal(f_num_edt);
		}
		vLwcdm2reponse.cd_promo		 = f_cd_promo;
		vLwcdm2reponse.lbl_promo	 = f_lbl_promo;
		vLwcdm2reponse.top_inclus	 = f_top_inclus;
		vLwcdm2reponse.top_societe	 = f_top_societe;
		vLwcdm2reponse.top_carnet	 = f_top_carnet;
		vLwcdm2reponse.type_promo	 = f_type_promo;
		vLwcdm2reponse.top_coiffe	 = f_top_coiffe;
		vLwcdm2reponse.top_grand_compte	 = f_top_grand_compte;
		vLwcdm2reponse.type_sscmd	 = i_type_sscmd;
		
		if(!"".equals(f_qte_promo) && f_qte_promo!=null){
			vLwcdm2reponse.qte_promo = new BigDecimal(f_qte_promo);
		}
		if(!"".equals(f_poids) && f_poids!=null){
			vLwcdm2reponse.poids = new BigDecimal(f_poids);
		}
		
		vLwcdm2.demande       = vLwcdm2Demande;
		vLwcdm2.reponse_sscmd = vLwcdm2reponse;
		
		jwlwcdm2.setNwlwcdm2Awlwcdm2(vLwcdm2);
		
		// CALL SERVER
		jwlwcdm2.nwlwcdm2();
		
		// Verification du code retour
		vWebent = jwlwcdm2.getNwlwcdm2Axwebent();
		System.out.println("Code retour nwlwcdm2() = " + vWebent.code_retour.intValue());
		
		if(vWebent.code_retour.intValue() != 0){
			for(int i=0; i < vWebent.nb_ano.intValue(); i++){
			   System.out.println(vWebent.t_ano[i].code_ano + "[" + vWebent.t_ano[i].type_ano + "] :  " + vWebent.t_ano[i].lib_ano.trim() + " ");
		   	}
		}
		else{
			System.out.println ("Suite normale ...");
		}
		System.out.println ("Reponse apres maj");
		Jwlwcdm2.Nwlwcdm2Awlwcdm2Reponse_sscmd reponse_sscmd = jwlwcdm2.getNwlwcdm2Awlwcdm2().reponse_sscmd;	
		System.out.println("Id_sscmd_cree : " + reponse_sscmd.id_sscmd_creee);
		return jwlwcdm2;
	   } // End setListeSousCommandes
	
	public static Jwlwcdm2 copieSousCommande(
			String top_cc,
			String i_cd_cible,
			String i_id_cmd,
			String i_cd_cible_cc,
			String i_id_cmd_cc,
			String i_id_sscmd_cc,
			String groupe_exploitant,
			String numero_session,
			String utilisateur,
			String cd_cible,
			String cd_stegrp,
			Broker broker) throws BrokerException {
			// Initialisation des variables en entrees
		    Jwlwcdm2 jwlwcdm2 		  = new Jwlwcdm2(broker, Constantes.SERVER_ADRESSE);	
			// Initialisation de la vWebent depuis les informations de connexion
			Jwlwcdm2.Nwlwcdm2Axwebent vWebent = jwlwcdm2.new Nwlwcdm2Axwebent();
			vWebent.dbid 			  = new BigDecimal (Constantes.DBID);
			vWebent.cible_exploitant  = Constantes.CD_CIBLE;
			vWebent.groupe_exploitant = groupe_exploitant;
			vWebent.numero_session 	  = new BigDecimal (numero_session);
			vWebent.utilisateur    	  = utilisateur;
			vWebent.transaction 	  = "WLWSTLST";
			vWebent.fonction 		  = "CREAT";
			vWebent.cd_cible 		  = cd_cible;
			vWebent.cd_stegrp 		  = cd_stegrp;
			vWebent.cd_application 	  = Constantes.CD_APPLICATION;
			jwlwcdm2.setNwlwcdm2Axwebent (vWebent);
			
			// Initialisation de la demande (tous a vide pour l instant)
			Jwlwcdm2.Nwlwcdm2Awlwcdm2 vLwcdm2 				= jwlwcdm2.new Nwlwcdm2Awlwcdm2();
			Jwlwcdm2.Nwlwcdm2Awlwcdm2Copie vLwcdm2Copie     = jwlwcdm2.new Nwlwcdm2Awlwcdm2Copie();
			Jwlwcdm2.Nwlwcdm2Awlwcdm2Demande vLwcdm2demande = jwlwcdm2.new Nwlwcdm2Awlwcdm2Demande();
			
			vLwcdm2demande.i_cd_cible = i_cd_cible;
			
			if(!"".equals(i_id_cmd) && i_id_cmd!=null){
				vLwcdm2demande.i_id_cmd = new BigDecimal(i_id_cmd) ;
			}
			vLwcdm2Copie.top_cc 		= top_cc;
			vLwcdm2Copie.i_cd_cible_cc  = i_cd_cible_cc;
			
			if(!"".equals(i_id_cmd_cc) && i_id_cmd_cc!=null){
				vLwcdm2Copie.i_id_cmd_cc = new BigDecimal(i_id_cmd_cc) ;
			}
			
			if(!"".equals(i_id_sscmd_cc) && i_id_sscmd_cc!=null){
				vLwcdm2Copie.i_id_sscmd_cc = new BigDecimal(i_id_sscmd_cc) ;
			}
			
			vLwcdm2.demande	= vLwcdm2demande;
			vLwcdm2.copie   = vLwcdm2Copie;
			
			jwlwcdm2.setNwlwcdm2Awlwcdm2(vLwcdm2);
			
			// CALL SERVER
			jwlwcdm2.nwlwcdm2();
			
			// Verification du code retour
			vWebent = jwlwcdm2.getNwlwcdm2Axwebent();
			System.out.println("Code retour nwlwcdm2() = " + vWebent.code_retour.intValue());
			
			if(vWebent.code_retour.intValue() != 0){
				for(int i=0; i < vWebent.nb_ano.intValue(); i++){
				   System.out.println(vWebent.t_ano[i].code_ano + "[" + vWebent.t_ano[i].type_ano + "] :  " + vWebent.t_ano[i].lib_ano.trim() + " ");
			   	}
			}
			else{
				System.out.println ("Suite normale ...");
			}
			System.out.println ("Reponse apres copieSousCommande");
			Jwlwcdm2.Nwlwcdm2Awlwcdm2Reponse_sscmd reponse_sscmd = jwlwcdm2.getNwlwcdm2Awlwcdm2().reponse_sscmd;	
			System.out.println("Id_sscmd_cree : " + reponse_sscmd.id_sscmd_creee);
			return jwlwcdm2;
		   } // End copieSousCommande
	
	
	
	
	
	   public static Jwlwcdm2 supprimerSousCommande(
		String fonction,
		String i_cd_cible,
		String i_id_cmd,
		String i_id_sscmd,
		String groupe_exploitant,
		String numero_session,
		String utilisateur,
		String cd_cible,
		String cd_stegrp,
		Broker broker) throws BrokerException {
		// Initialisation des variables en entrees
	    Jwlwcdm2 jwlwcdm2 		  = new Jwlwcdm2(broker, Constantes.SERVER_ADRESSE);	
		// Initialisation de la vWebent depuis les informations de connexion
		Jwlwcdm2.Nwlwcdm2Axwebent vWebent = jwlwcdm2.new Nwlwcdm2Axwebent();
		vWebent.dbid 			  = new BigDecimal (Constantes.DBID);
		vWebent.cible_exploitant  = Constantes.CD_CIBLE;
		vWebent.groupe_exploitant = groupe_exploitant;
		vWebent.numero_session 	  = new BigDecimal (numero_session);
		vWebent.utilisateur    	  = utilisateur;
		vWebent.transaction 	  = "WLWSTLST";
		vWebent.fonction 		  = fonction;
		vWebent.cd_cible 		  = cd_cible;
		vWebent.cd_stegrp 		  = cd_stegrp;
		vWebent.cd_application 	  = Constantes.CD_APPLICATION;
		jwlwcdm2.setNwlwcdm2Axwebent (vWebent);
		
		// Initialisation de la demande (tous a vide pour l instant)
		Jwlwcdm2.Nwlwcdm2Awlwcdm2 vLwcdm2 				 = jwlwcdm2.new Nwlwcdm2Awlwcdm2();
		Jwlwcdm2.Nwlwcdm2Awlwcdm2Demande vLwcdm2Demande  = jwlwcdm2.new Nwlwcdm2Awlwcdm2Demande();
		
		
		vLwcdm2Demande.i_cd_cible = i_cd_cible;
		
		if(!"".equals(i_id_cmd) && i_id_cmd!=null){
			vLwcdm2Demande.i_id_cmd = new BigDecimal(i_id_cmd) ;
		}
		
		if(!"".equals(i_id_sscmd) && i_id_sscmd!=null){
			vLwcdm2Demande.i_id_sscmd = new BigDecimal(i_id_sscmd) ;
		}
		vLwcdm2.demande       = vLwcdm2Demande;
		jwlwcdm2.setNwlwcdm2Awlwcdm2(vLwcdm2);
		
		// CALL SERVER
		jwlwcdm2.nwlwcdm2();
		
		// Verification du code retour
		vWebent = jwlwcdm2.getNwlwcdm2Axwebent();
		System.out.println("Code retour nwlwcdm2() = " + vWebent.code_retour.intValue());
		
		if(vWebent.code_retour.intValue() != 0){
			for(int i=0; i < vWebent.nb_ano.intValue(); i++){
			   System.out.println(vWebent.t_ano[i].code_ano + "[" + vWebent.t_ano[i].type_ano + "] :  " + vWebent.t_ano[i].lib_ano.trim() + " ");
		   	}
		}
		else{
			System.out.println ("Suppression Suite normale ...");
		}
		
		return jwlwcdm2;
	   } // End supprimerSousCommande
	   
	   /**
		 * <p>Titre : main</p>
		 * <p>Description : Programme principal de tests</p>
		 * <p>Copyright : Copyright (c) 2012</p>
		 * <p>Societe : ENSOR</p>
		 * @author AR & DR & PY <i>25/03/2012</i>
		 * @version 1.0
		 */
	   public static void main(String[] args) throws BrokerException {
			Constantes.loadProperties("LW") ;
			JxweblogWeb.setUtilisateur ("MADAA02");
			JxweblogWeb.setPassword ("MADAA62");

			Broker broker 				    	= JxweblogWeb.logonBroker();
			Jxweblog jxweblog 				    = JxweblogWeb.getConnexion(broker);
			Jxweblog.NxweblogAxwebent connexion = jxweblog.getNxweblogAxwebent();
			
			String groupe_exploitant = connexion.groupe_exploitant;
			String numero_session 	 = Integer.toString(connexion.numero_session.intValue());
			String utilisateur 		 = connexion.utilisateur;
			String cd_cible 		 = connexion.cd_cible;
			String cd_stegrp 		 = connexion.cd_stegrp;
			
			//Test de Creation
			//---------Donnee Test---------------
			/*String i_cd_cible 	= "50";
			String i_id_cmd 	= "812";
			String i_id_sscmd 	= null;
			String i_type_sscmd = "P";
			String fonction 	= "CREAT";
			String f_num_edt 	= "1";
			String f_cd_promo 	= "CDP002";
			String f_lbl_promo 	= "LIBPROMO";
			String f_top_inclus = "O";
			String f_top_societe= "O";
			String f_top_carnet = null;
			String f_top_grand_compte = "O";
			String f_type_promo = null;
			String f_top_coiffe = "O";
			String f_qte_promo 	= "0";
			//---------Donnee Test---------------
			
			setListeSousCommandes(fonction,
					i_cd_cible, i_id_cmd, i_id_sscmd,
					i_type_sscmd, f_num_edt, f_cd_promo,
					f_lbl_promo, f_top_inclus, f_top_societe,
					f_top_carnet, f_top_grand_compte, f_type_promo,
					f_top_coiffe, f_qte_promo,
					
					groupe_exploitant, numero_session, utilisateur, cd_cible, cd_stegrp, broker);
			*/
			
	   
			//Test de MODIFICATION
			//---------Donnee Test---------------
			String i_cd_cible 	= "50";
			String i_id_cmd 	= "925";
			String i_id_sscmd 	= "4";
			String i_type_sscmd = null;// p / R 
			String fonction 	= "MODIF";
			String f_num_edt 	= "4";
			String f_cd_promo 	= "CDP004M";
			String f_lbl_promo 	= "LIBPROMO_M";
			String f_top_inclus = "O";
			String f_top_societe= "O";
			String f_top_carnet = "O";
			String f_top_grand_compte = "N";
			String f_type_promo = "P";
			String f_top_coiffe = "N";
			String f_qte_promo 	= "2";
			String f_poids = "10" ;
			//---------Donnee Test---------------
			
			setListeSousCommandes(fonction,
					i_cd_cible, i_id_cmd, i_id_sscmd, i_type_sscmd,
					f_num_edt, f_cd_promo, f_lbl_promo, f_top_inclus,
					f_top_societe, f_top_carnet, f_top_grand_compte,
					f_type_promo, f_top_coiffe, f_qte_promo, f_poids,
					
					groupe_exploitant, numero_session, utilisateur, cd_cible, cd_stegrp, broker);
			
			
			//Test de SUPPRESSION
			//---------Donnee Test---------------
			/*String i_cd_cible 	= "50";
			String i_id_cmd 	= "812";
			String i_id_sscmd 	= "1";		
			String i_type_sscmd = "P";		
			String fonction 	= "SUPP";
			String f_num_edt 	= "1";
			String f_cd_promo 	= "CDP002M";
			String f_lbl_promo 	= "LIBPROMO_M";
			String f_top_inclus = "N";
			String f_top_societe= "N";
			String f_top_carnet = null;
			String f_top_grand_compte = "N";
			String f_type_promo = "C";
			String f_top_coiffe = "O";
			String f_qte_promo 	= null;
			//---------Donnee Test---------------
			
			setListeSousCommandes(fonction,
					i_cd_cible, i_id_cmd,
					i_id_sscmd,i_type_sscmd, f_num_edt, f_cd_promo, f_lbl_promo, f_top_inclus, f_top_societe,
					f_top_carnet, f_top_grand_compte, f_type_promo, f_top_coiffe, 
					f_qte_promo,
					groupe_exploitant, numero_session, utilisateur, cd_cible, cd_stegrp, broker);
	   		*/
			
			//Test de SUPPRESSION
			//---------Donnee Test---------------
			/*String top_cc 		 = "O";
			String i_cd_cible 	 = "50";
			String i_id_cmd 	 = "812";
			String i_cd_cible_cc = "50";
			String i_id_cmd_cc   = "832";
			String i_id_sscmd_cc = "2";
			//---------Donnee Test---------------
			copieSousCommande(top_cc, i_cd_cible, i_id_cmd,
					i_cd_cible_cc, i_id_cmd_cc, i_id_sscmd_cc,
					groupe_exploitant, numero_session, utilisateur, cd_cible, cd_stegrp, broker);*/
	   }		
}