package is.idega.idegaweb.travel.presentation;
import java.rmi.RemoteException;
import java.sql.SQLException;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;
import javax.ejb.FinderException;
import com.idega.block.trade.stockroom.data.Reseller;
import com.idega.block.trade.stockroom.data.ResellerHome;
import com.idega.block.trade.stockroom.data.Supplier;
import com.idega.block.trade.stockroom.data.SupplierBMPBean;
import com.idega.block.trade.stockroom.data.SupplierHome;
import com.idega.core.accesscontrol.business.LoginDBHandler;
import com.idega.core.contact.data.Email;
import com.idega.core.contact.data.Phone;
import com.idega.core.location.data.Address;
import com.idega.core.location.data.PostalCode;
import com.idega.core.location.data.PostalCodeHome;
import com.idega.data.IDOLookup;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.presentation.IWContext;
import com.idega.presentation.Table;
import com.idega.presentation.text.Link;
import com.idega.presentation.text.Text;
import com.idega.presentation.ui.BackButton;
import com.idega.presentation.ui.CheckBox;
import com.idega.presentation.ui.DropdownMenu;
import com.idega.presentation.ui.Form;
import com.idega.presentation.ui.HiddenInput;
import com.idega.presentation.ui.PasswordInput;
import com.idega.presentation.ui.SubmitButton;
import com.idega.presentation.ui.TextArea;
import com.idega.presentation.ui.TextInput;
/**
* Title: idegaWeb TravelBooking
* Description:
* Copyright: Copyright (c) 2001
* Company: idega
* @author <a href="mailto:gimmi@idega.is">Grimur Jonsson</a>
* @version 1.0
*/
public class ResellerCreator extends TravelManager {
private IWResourceBundle iwrb;
private String parameterSaveNewReseller = "contractSaveNewReseller";
private String parameterUpdateReseller = "contractUpdateReseller";
private String parameterNewReseller = "contractNewReseller";
private String parameterEditReseller = "contractEditReseller";
private String parameterDeleteReseller = "contractDeleteReseller";
private String parameterDelYes = "contractDelYes";
private String parameterSelectReseller = "contractSelectReseller";
private String parameterResellerId = "contractResellerId";
private String parameterCheckBox = "parameterCheckBox_";
private String parameterSupplierCheckBox = "par_supp_checkBox_";
private String parameterUpdateSuppliers = "par_upd_sup";
private String parameterAddSuppliers = "par_add_sup";
private String sAction = "res_cr_action";
private String tableWidth = "75%";
public ResellerCreator() {
}
public void main(IWContext iwc) throws Exception{
super.main(iwc);
init(iwc);
String action = iwc.getParameter(this.sAction);
if (super.isSupplierManager()) {
if (action == null) {
selectReseller(iwc);
// mainMenu(iwc);
}else if (action.equals(this.parameterNewReseller)) {
resellerCreation(iwc, -1);
}else if (action.equals(this.parameterSelectReseller)) {
selectReseller(iwc);
}else if (action.equals(this.parameterEditReseller)) {
String sResellerId = iwc.getParameter(this.parameterResellerId);
resellerCreation(iwc, Integer.parseInt(sResellerId));
}else if (action.equals(this.parameterSaveNewReseller)) {
int resellerId = saveReseller(iwc,-1);
if (resellerId != -1) {
resellerCreation(iwc, resellerId);
}
}else if (action.equals(this.parameterUpdateReseller)) {
String sResellerId = iwc.getParameter(this.parameterResellerId);
int resellerId = saveReseller(iwc,Integer.parseInt(sResellerId));
if (resellerId != -1) {
resellerCreation(iwc, resellerId);
}
}else if (action.equals(this.parameterDeleteReseller)) {
comfirmDelete(iwc);
}else if (action.equals(this.parameterDelYes)) {
deleteReseller(iwc);
selectReseller(iwc);
}else if (action.equals(this.parameterUpdateSuppliers)) {
String sResellerId = iwc.getParameter(this.parameterResellerId);
updateSuppliers(iwc);
addSuppliers(iwc, Integer.parseInt(sResellerId));
}else if (action.equals(this.parameterAddSuppliers)) {
String sResellerId = iwc.getParameter(this.parameterResellerId);
addSuppliers(iwc, Integer.parseInt(sResellerId));
}
}else {
iwrb.getLocalizedString("travel.log_in","Please log in.");
}
}
private void init(IWContext iwc) throws RemoteException {
iwrb = super.getResourceBundle();
}
/*
private void mainMenu(IWContext iwc) {
Table table = new Table();
Link newReseller = new Link(iwrb.getLocalizedImageButton("travel.new_reseller","New Reseller"));
newReseller.addParameter(this.sAction, this.parameterNewReseller);
Link editReseller = new Link(iwrb.getLocalizedImageButton("travel.edit_reseller","Edit Reseller"));
editReseller.addParameter(this.sAction, this.parameterSelectReseller);
table.add(newReseller,1, 1);
table.add(editReseller,1, 1);
add(Text.BREAK);
add(table);
// table.add(iwrb.getLocalizedImageButton("travel.new_reseller","New Reseller"),1, 1);
}*/
private void resellerCreation(IWContext iwc, int resellerId) throws SQLException, RemoteException, FinderException{
Form form = new Form();
Table table = new Table();
form.add(table);
table.setColor(super.WHITE);
table.setCellspacing(1);
table.setAlignment("center");
table.setColumnAlignment(1,"right");
table.setBorder(0);
table.setWidth(this.tableWidth);
boolean isUpdate = false;
if (resellerId != -1) {
isUpdate = true;
}
int row = 0;
Text newSupplierText = (Text) theBoldText.clone();
if (isUpdate) newSupplierText.setText(iwrb.getLocalizedString("travel.update_reseller_information","Update reseller information"));
else newSupplierText.setText(iwrb.getLocalizedString("travel.new_reseller","New Reseller"));
Text nameText = (Text) theBoldText.clone();
nameText.setText(iwrb.getLocalizedString("travel.name","Name"));
nameText.addToText(":");
nameText.setFontColor(super.BLACK);
Text descText = (Text) theBoldText.clone();
descText.setText(iwrb.getLocalizedString("travel.Description","Description"));
descText.addToText(":");
descText.setFontColor(super.BLACK);
Text addressText = (Text) theBoldText.clone();
addressText.setText(iwrb.getLocalizedString("travel.address_long","Address"));
addressText.addToText(":");
addressText.setFontColor(super.BLACK);
Text postalText = (Text) theBoldText.clone();
postalText.setFontColor(super.BLACK);
postalText.setText(iwrb.getLocalizedString("travel.postal_code_long","Postal code"));
postalText.addToText(":");
Text phoneText = (Text) theBoldText.clone();
phoneText.setText(iwrb.getLocalizedString("travel.telephone_number_lg","Telephone number"));
phoneText.addToText(":");
phoneText.setFontColor(super.BLACK);
Text faxText = (Text) theBoldText.clone();
faxText.setText(iwrb.getLocalizedString("travel.fax","Fax number"));
faxText.addToText(":");
faxText.setFontColor(super.BLACK);
Text emailText = (Text) theBoldText.clone();
emailText.setText(iwrb.getLocalizedString("travel.email_lg","E-mail"));
emailText.addToText(":");
emailText.setFontColor(super.BLACK);
Text orgIDText = (Text) theBoldText.clone();
orgIDText.setText(iwrb.getLocalizedString("travel.organization_id","Organization ID"));
orgIDText.addToText(":");
orgIDText.setFontColor(super.BLACK);
Text loginText = (Text) theBoldText.clone();
loginText.setText(iwrb.getLocalizedString("travel.user_name","User name"));
loginText.addToText(":");
loginText.setFontColor(super.BLACK);
Text passwordText = (Text) theBoldText.clone();
passwordText.setText(iwrb.getLocalizedString("travel.password","Password"));
passwordText.addToText(":");
passwordText.setFontColor(super.BLACK);
int inputSize = 40;
TextInput name = new TextInput("reseller_name");
name.setSize(inputSize);
TextArea description = new TextArea("reseller_description");
description.setWidth("260");
description.setHeight("80");
TextInput address = new TextInput("reseller_address");
address.setSize(inputSize);
DropdownMenu postalCode = new DropdownMenu("reseller_postal_code");
PostalCodeHome pch = (PostalCodeHome) IDOLookup.getHome(PostalCode.class);
Collection allPostalCodes = pch.findAllOrdererByCode();
Iterator iter = allPostalCodes.iterator();
PostalCode pc;
while (iter.hasNext()) {
pc = (PostalCode) iter.next();
postalCode.addMenuElement(pc.getPrimaryKey().toString(), pc.getPostalCode()+" "+pc.getName());
}
TextInput phone = new TextInput("reseller_phone");
phone.setSize(inputSize);
TextInput fax = new TextInput("reseller_fax");
fax.setSize(inputSize);
TextInput email = new TextInput("reseller_email");
email.setSize(inputSize);
TextInput orgID = new TextInput("organization_id");
orgID.setSize(inputSize);
TextInput userName = new TextInput("reseller_user_name");
userName.setAsNotEmpty(iwrb.getLocalizedString("travel.a_username_must_be_selected","Ver�ur a� velja notendanafn"));
PasswordInput passOne = new PasswordInput("reseller_password_one");
PasswordInput passTwo = new PasswordInput("reseller_password_two");
SubmitButton submit = new SubmitButton(iwrb.getImage("buttons/save.gif"),this.sAction,this.parameterSaveNewReseller);
SubmitButton delete = new SubmitButton(iwrb.getImage("buttons/delete.gif"),this.sAction,this.parameterDeleteReseller);
SubmitButton back = new SubmitButton(iwrb.getImage("buttons/back.gif"), this.sAction, this.parameterSelectReseller);
if (resellerId != -1) {
table.add(new HiddenInput(this.parameterResellerId,Integer.toString(resellerId)));
Reseller reseller = ((com.idega.block.trade.stockroom.data.ResellerHome)com.idega.data.IDOLookup.getHomeLegacy(Reseller.class)).findByPrimaryKeyLegacy(resellerId);
name.setContent(reseller.getName());
description.setContent(reseller.getDescription());
Address addr = reseller.getAddress();
if (addr != null) {
String namer = addr.getStreetName();
String number = addr.getStreetNumber();
if (number == null) {
address.setContent(namer);
}else {
address.setContent(namer+" "+number);
}
int iPostalCodeId = addr.getPostalCodeID();
if (iPostalCodeId != -1){
postalCode.setSelectedElement(iPostalCodeId);
}
}
List phones = reseller.getHomePhone();
if (phones != null) {
if (phones.size() > 0) {
Phone phone1 = (Phone) phones.get(0);
if (phone1 != null && phone1.getNumber() != null )
phone.setContent(phone1.getNumber());
}
}
phones = reseller.getFaxPhone();
if (phones != null) {
if (phones.size() > 0) {
Phone phone2 = (Phone) phones.get(0);
if (phone2 != null && phone2.getNumber() != null )
fax.setContent(phone2.getNumber());
}
}
Email eEmail = reseller.getEmail();
if (eEmail != null) {
email.setContent(eEmail.getEmailAddress());
}
if (reseller.getOrganizationID() != null) {
orgID.setContent(reseller.getOrganizationID());
}
submit = new SubmitButton(iwrb.getImage("buttons/update.gif"),this.sAction,this.parameterUpdateReseller);
}
++row;
table.mergeCells(1,row,2,row);
table.setAlignment(1,row,"center");
table.add(newSupplierText,1,row);
table.setRowColor(row,super.backgroundColor);
++row;
table.add(nameText,1,row);
table.add(name,2,row);
table.setRowColor(row,super.GRAY);
++row;
table.add(descText,1,row);
table.setVerticalAlignment(1,row,"top");
table.add(description,2,row);
table.setRowColor(row,super.GRAY);
++row;
table.add(addressText,1,row);
table.add(address,2,row);
table.setRowColor(row,super.GRAY);
++row;
table.add(postalText,1,row);
table.add(postalCode,2,row);
table.setRowColor(row,super.GRAY);
++row;
table.add(phoneText,1,row);
table.add(phone,2,row);
table.setRowColor(row,super.GRAY);
++row;
table.add(faxText,1,row);
table.add(fax,2,row);
table.setRowColor(row,super.GRAY);
++row;
table.add(emailText,1,row);
table.add(email,2,row);
table.setRowColor(row,super.GRAY);
++row;
table.add(orgIDText, 1, row);
table.add(orgID, 2, row);
table.setRowColor(row, GRAY);
if (!isUpdate) {
++row;
table.add(loginText,1,row);
table.add(userName,2,row);
table.setRowColor(row,super.GRAY);
++row;
table.add(passwordText,1,row);
table.setVerticalAlignment(1,row,"top");
table.add(passOne,2,row);
table.addBreak(2,row);
table.add(passTwo,2,row);
table.setRowColor(row,super.GRAY);
}
table.setColumnAlignment(2,"left");
++row;
table.setAlignment(1,row,"left");
table.add(back,1,row);
table.setAlignment(2,row,"right");
table.add(delete,2,row);
table.add(Text.NON_BREAKING_SPACE, 2, row);
table.add(submit,2,row);
table.setRowColor(row,super.GRAY);
if (resellerId != -1) {
form.add(Text.getBreak());
Table list = getSupplierList(iwc, resellerId);
// form.addParameter(this.parameterResellerId, resellerId);
//++row;
//table.mergeCells(1, row, 2, row);
form.add(list);
}
add(Text.getBreak());
add(form);
}
private int saveReseller(IWContext iwc) {
return saveReseller(iwc, -1);
}
private int saveReseller(IWContext iwc, int resellerId) {
add(Text.getBreak());
int returner = -1;
javax.transaction.TransactionManager tm = com.idega.transaction.IdegaTransactionManager.getInstance();
try {
tm.begin();
String name = iwc.getParameter("reseller_name");
String description = iwc.getParameter("reseltler_description");
String address = iwc.getParameter("reseller_address");
String postalCode = iwc.getParameter("reseller_postal_code");
String phone = iwc.getParameter("reseller_phone");
String fax = iwc.getParameter("reseller_fax");
String email = iwc.getParameter("reseller_email");
String orgID = iwc.getParameter("organization_id");
String userName = iwc.getParameter("reseller_user_name");
String passOne = iwc.getParameter("reseller_password_one");
String passTwo = iwc.getParameter("reseller_password_two");
// tm.begin();
int iPostalCode = -1;
try {
if (postalCode != null){
iPostalCode = Integer.parseInt(postalCode);
}
}catch (NumberFormatException e) {
}
boolean isUpdate = false;
if (resellerId != -1) isUpdate = true;
if (isUpdate) {
Vector phoneIDS = new Vector();
Reseller reseller = ((com.idega.block.trade.stockroom.data.ResellerHome)com.idega.data.IDOLookup.getHomeLegacy(Reseller.class)).findByPrimaryKeyLegacy(resellerId);
Phone ph;
List phones = reseller.getPhones(com.idega.core.contact.data.PhoneBMPBean.getHomeNumberID());
if (phones != null) {
if (phones.size() > 0) {
for (int i = 0; i < phones.size(); i++) {
ph = (Phone) phones.get(i);
ph.setNumber(phone);
ph.update();
phoneIDS.add(new Integer(ph.getID()));
}
}else {
ph = ((com.idega.core.contact.data.PhoneHome)com.idega.data.IDOLookup.getHomeLegacy(Phone.class)).createLegacy();
ph.setNumber(phone);
ph.setPhoneTypeId(com.idega.core.contact.data.PhoneBMPBean.getHomeNumberID());
ph.insert();
phoneIDS.add(new Integer(ph.getID()));
}
}
phones = reseller.getPhones(com.idega.core.contact.data.PhoneBMPBean.getFaxNumberID());
if (phones != null) {
if (phones.size() > 0 ) {
for (int i = 0; i < phones.size(); i++) {
ph = (Phone) phones.get(i);
ph.setNumber(fax);
ph.update();
phoneIDS.add(new Integer(ph.getID()));
}
}else {
ph = ((com.idega.core.contact.data.PhoneHome)com.idega.data.IDOLookup.getHomeLegacy(Phone.class)).createLegacy();
ph.setNumber(fax);
ph.setPhoneTypeId(com.idega.core.contact.data.PhoneBMPBean.getFaxNumberID());
ph.insert();
phoneIDS.add(new Integer(ph.getID()));
}
}
int[] phoneIds = new int[phoneIDS.size()];
for (int i = 0; i < phoneIDS.size(); i++) {
phoneIds[i] = ((Integer) phoneIDS.get(i)).intValue() ;
}
Address addr = reseller.getAddress();
addr.setStreetName(address);
if (iPostalCode != -1) {
addr.setPostalCodeID(iPostalCode);
}
addr.update();
int[] addressIds = new int[1];
addressIds[0] = addr.getID();
Email eml = reseller.getEmail();
eml.setEmailAddress(email);
eml.update();
int[] emailIds = new int[1];
emailIds[0] = eml.getID();
reseller = getResellerManager(iwc).updateReseller(resellerId, name, description, addressIds, phoneIds, emailIds, orgID);
add(iwrb.getLocalizedString("travel.information_updated","Information updated"));
returner = reseller.getID();
// resellerCreation(resellerId);
}else {
if (passOne.equals(passTwo) && !LoginDBHandler.isLoginInUse(userName)) {
Vector phoneIDS = new Vector();
if (phone.length() > 0) {
Phone phonePhone = ((com.idega.core.contact.data.PhoneHome)com.idega.data.IDOLookup.getHomeLegacy(Phone.class)).createLegacy();
phonePhone.setNumber(phone);
phonePhone.setPhoneTypeId(com.idega.core.contact.data.PhoneBMPBean.getHomeNumberID());
phonePhone.insert();
phoneIDS.add(new Integer(phonePhone.getID()));
}
if (fax.length() > 0) {
Phone faxPhone = ((com.idega.core.contact.data.PhoneHome)com.idega.data.IDOLookup.getHomeLegacy(Phone.class)).createLegacy();
faxPhone.setNumber(fax);
faxPhone.setPhoneTypeId(com.idega.core.contact.data.PhoneBMPBean.getFaxNumberID());
faxPhone.insert();
phoneIDS.add(new Integer(faxPhone.getID()));
}
int[] phoneIds = new int[phoneIDS.size()];
for (int i = 0; i < phoneIDS.size(); i++) {
phoneIds[i] = ((Integer) phoneIDS.get(i)).intValue() ;
}
int[] addressIds = new int[1];
Address addressAddress = ((com.idega.core.location.data.AddressHome)com.idega.data.IDOLookup.getHomeLegacy(Address.class)).createLegacy();
addressAddress.setStreetName(address);
if (iPostalCode != -1) {
addressAddress.setPostalCodeID(iPostalCode);
}
addressAddress.insert();
addressIds[0] = addressAddress.getID();
int[] emailIds = new int[1];
Email eEmail = ((com.idega.core.contact.data.EmailHome)com.idega.data.IDOLookup.getHomeLegacy(Email.class)).createLegacy();
eEmail.setEmailAddress(email);
eEmail.insert();
emailIds[0] = eEmail.getID();
Reseller tempReseller = getResellerManager(iwc).createReseller(null, name, userName, passOne, description, addressIds, phoneIds, emailIds, orgID);
tempReseller.setSupplierManager(getSupplierManager());
tempReseller.store();
/*if (supplier != null) {
tempReseller.addTo(supplier);
}*/
//add(iwrb.getLocalizedString("travel.reseller_created","Reseller was created"));
//resellers = getResellers();
//this.selectReseller(iwc);
returner = tempReseller.getID();
}else {
if (LoginDBHandler.isLoginInUse(userName)) {
add(iwrb.getLocalizedString("username_in_use","Username in use"));
add(Text.BREAK);
}
if (!passOne.equals(passTwo)) {
add(iwrb.getLocalizedString("passwords_not_the_same","Passwords not the same"));
add(Text.BREAK);
}
add(Text.BREAK);
add(new BackButton(iwrb.getImage("buttons/back.gif")));
}
}
tm.commit();
return returner;
}
catch (Exception sql) {
add(iwrb.getLocalizedString("travel.reseller_not_created","Reseller was not created"));
sql.printStackTrace(System.err);
try {
tm.rollback();
}catch (javax.transaction.SystemException se) {
se.printStackTrace(System.err);
}
}
return returner;
}
private void comfirmDelete(IWContext iwc) throws SQLException, RemoteException{
String resellerId = iwc.getParameter(this.parameterResellerId);
if (resellerId != null) {
ResellerHome rHome = (ResellerHome) IDOLookup.getHomeLegacy(Reseller.class);
Reseller res = rHome.findByPrimaryKeyLegacy(Integer.parseInt(resellerId));
Text areSure = getText(iwrb.getLocalizedString("travel.delete_reseller_question","Are you sure you want to delete this reseller"));
areSure.addToText(" : ");
areSure.setFontColor(super.WHITE);
Form form = new Form();
Table table = getTable();
table.setWidth(this.tableWidth);
form.add(table);
table.add(areSure, 1, 1);
table.add(getHeaderText(res.getName()+" ? "), 1, 1);
table.mergeCells(1, 1, 2, 1);
table.mergeCells(1, 2, 2, 2);
Supplier[] supps = getResellerManager(iwc).getSuppliers(res.getID(), SupplierBMPBean.getColumnNameName());
if (supps.length == 0) {
table.add(getText(iwrb.getLocalizedString("travel.reseller_not_connected","This reseller is not connected to any suppliers")+"."), 1, 2);
}else {
table.add(getText(iwrb.getLocalizedString("travel.reseller_connected_to_following","This reseller is connected to the following suppliers")+" :"), 1, 2);
for (int i = 0; i < supps.length; i++) {
table.add(Text.BREAK+Text.NON_BREAKING_SPACE+Text.NON_BREAKING_SPACE+getText(supps[i].getName()),1, 2);
}
}
table.setAlignment(2, 3, "right");
table.add(new SubmitButton(iwrb.getImage("buttons/back.gif"), this.sAction, this.parameterEditReseller), 1, 3);
table.add(new SubmitButton(iwrb.getImage("buttons/yes.gif"), this.sAction, this.parameterDelYes), 2, 3);
table.add(new HiddenInput(this.parameterResellerId, resellerId), 2, 3);
table.setRowColor(1, super.backgroundColor);
table.setRowColor(2, super.GRAY);
table.setRowColor(3, super.GRAY);
add(Text.BREAK);
add(form);
}
}
private void deleteReseller(IWContext iwc) throws SQLException {
String resellerId = iwc.getParameter(this.parameterResellerId);
if (resellerId != null) {
ResellerHome rHome = (ResellerHome) IDOLookup.getHomeLegacy(Reseller.class);
Reseller res = rHome.findByPrimaryKeyLegacy(Integer.parseInt(resellerId));
res.delete();
}
}
private void selectReseller(IWContext iwc) throws RemoteException, FinderException {
ResellerHome rHome = (ResellerHome) IDOLookup.getHomeLegacy(Reseller.class);
Collection coll = rHome.findAllBySupplierManager(super.getSupplierManager());
//Reseller[] resellers = (Reseller[]) rHome.createLegacy().findAll("select * from "+ResellerBMPBean.getResellerTableName()+" where "+ResellerBMPBean.getColumnNameIsValid()+" = 'Y' order by "+ResellerBMPBean.getColumnNameName());
Table table = super.getTable();
table.setWidth(this.tableWidth);
int row = 1;
table.add(super.getHeaderText(iwrb.getLocalizedString("travel.name","Name")), 1, row);
table.add(Text.NON_BREAKING_SPACE, 2, row);
table.setRowColor(row, super.backgroundColor);
if (coll != null) {
Link editLink;
Iterator iter = coll.iterator();
Reseller reseller;
while (iter.hasNext()) {
//for (int i = 0; i < resellers.length; i++) {
reseller = (Reseller) iter.next();
++row;
table.setRowColor(row, super.GRAY);
table.add(super.getText(reseller.getName()), 1, row);
editLink = new Link(iwrb.getLocalizedImageButton("travel.more","More"));
editLink.addParameter(this.sAction, this.parameterEditReseller);
editLink.addParameter(this.parameterResellerId, reseller.getID());
table.add(editLink, 2, row);
}
}
Link newReseller = new Link(iwrb.getLocalizedImageButton("travel.new_reseller","New Reseller"));
newReseller.addParameter(this.sAction, this.parameterNewReseller);
++row;
table.add(newReseller, 1, row);
table.setRowColor(row, super.backgroundColor);
table.setWidth(2, "2");
add(Text.BREAK);
add(table);
}
private void updateSuppliers(IWContext iwc) throws SQLException{
String sResellerId = iwc.getParameter(this.parameterResellerId);
ResellerHome rHome = (ResellerHome) IDOLookup.getHomeLegacy(Reseller.class);
Reseller reseller = rHome.findByPrimaryKeyLegacy(Integer.parseInt(sResellerId));
String[] suppIds = iwc.getParameterValues(this.parameterSupplierCheckBox);
reseller.removeFrom(Supplier.class);
if (suppIds != null) {
for (int i = 0; i < suppIds.length; i++) {
reseller.addTo(Supplier.class, Integer.parseInt(suppIds[i]));
}
}
}
private void addSuppliers(IWContext iwc, int resellerId) throws SQLException, RemoteException {
SupplierHome sHome = (SupplierHome) IDOLookup.getHome(Supplier.class);
Collection collAllSupps = null;
try {
collAllSupps = sHome.findAll(getSupplierManager());
}
catch (FinderException e) {
e.printStackTrace();
}
Supplier[] allSuppsArr = new Supplier[]{};
if (collAllSupps != null) {
allSuppsArr = (Supplier[]) collAllSupps.toArray(new Supplier[]{});
}
//Supplier[] allSuppsArr = sHome.findAll();//create().findAll("select * from "+SupplierBMPBean.getSupplierTableName()+" where "+SupplierBMPBean.getColumnNameIsValid()+" = 'Y' order by "+SupplierBMPBean.getColumnNameName());
Supplier[] resSuppsArr = getResellerManager(iwc).getSuppliers(resellerId, SupplierBMPBean.getColumnNameName());
Supplier supp;
List allSupps = getList(allSuppsArr);
List resSupps = getList(resSuppsArr);
allSupps.removeAll(resSupps);
Form form = getForm(true);
Table table = getTable();
table.setWidth(this.tableWidth);
form.add(table);
int row = 1;
table.add(getHeaderText(iwrb.getLocalizedString("travel.supplier","Supplier")), 1, row);
table.add(getHeaderText(iwrb.getLocalizedString("travel.use","Use")), 2, row);
table.setRowColor(row, super.backgroundColor);
CheckBox checkBox;
Iterator iter = resSupps.iterator();
while (iter.hasNext()) {
++row;
supp = (Supplier) iter.next();
checkBox = new CheckBox(this.parameterSupplierCheckBox, Integer.toString(supp.getID()));
checkBox.setChecked(true);
table.add(getText(supp.getName()), 1, row);
table.add(checkBox, 2, row);
table.setRowColor(row, super.GRAY);
}
++row;
table.setRowColor(row, super.backgroundColor);
iter = allSupps.iterator();
while (iter.hasNext()) {
++row;
supp = (Supplier) iter.next();
checkBox = new CheckBox(this.parameterSupplierCheckBox, Integer.toString(supp.getID()));
checkBox.setChecked(false);
table.add(getText(supp.getName()), 1, row);
table.add(checkBox, 2, row);
table.setRowColor(row, super.GRAY);
}
table.setColumnAlignment(2, "center");
++row;
table.setAlignment(2, row, "right");
table.add(new SubmitButton(iwrb.getImage("buttons/back.gif"), this.sAction, this.parameterEditReseller), 1, row);
table.add(new SubmitButton(iwrb.getImage("buttons/update.gif"), this.sAction, this.parameterUpdateSuppliers), 2, row);
table.setRowColor(row, super.GRAY);
table.setWidth(2, "2");
add(form);
// add("adding ton");
}
private List getList(Object[] objects) {
List list = new Vector();
for (int i = 0; i < objects.length; i++) {
list.add(objects[i]);
}
return list;
}
private Table getSupplierList(IWContext iwc, int resellerId) throws SQLException, RemoteException{
Supplier[] supps = getResellerManager(iwc).getSuppliers(resellerId);
// Form form = new Form();
// form.addParameter(this.parameterResellerId, resellerId);
Table table = getTable();
table.setWidth(this.tableWidth);
int row = 1;
// form.add(table);
table.add(getHeaderText(iwrb.getLocalizedString("travel.suppliers","Suppliers")), 1, row);
// table.add(getHeaderText(iwrb.getLocalizedString("travel.remove","Remove")), 2, row);
table.setRowColor(row, super.backgroundColor);
CheckBox cBox;
for (int i = 0; i < supps.length; i++) {
++row;
table.add(supps[i].getName(),1, row);
table.setRowColor(row, super.GRAY);
//cBox = new CheckBox(this.parameterCheckBox+supps[i].getID());
//cBox.setChecked(false);
//table.add(cBox, 2, row);
}
//table.setColumnAlignment(2, "center");
++row;
SubmitButton addNew = new SubmitButton(iwrb.getImage("buttons/add.gif"), sAction, parameterAddSuppliers);
// SubmitButton update = new SubmitButton(iwrb.getImage("buttons/update.gif"), sAction, parameterUpdateSuppliers);
table.setAlignment(1, row, "left");
table.add(addNew, 1, row);
table.setRowColor(row, super.GRAY);
// table.setAlignment(2, row, "right");
// table.add(update, 2, row);
// return form;
return table;
}
private Form getForm(boolean maintainResellerId) {
Form form = new Form();
if (maintainResellerId) {
form.maintainParameter(this.parameterResellerId);
}
return form;
}
}