001 /* 002 * Copyright 2011 The Kuali Foundation. 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 017 package org.kuali.kfs.vnd.businessobject; 018 019 import java.sql.Date; 020 import java.util.ArrayList; 021 import java.util.HashMap; 022 import java.util.LinkedHashMap; 023 import java.util.List; 024 import java.util.Map; 025 026 import org.apache.commons.lang.StringUtils; 027 import org.apache.commons.lang.builder.EqualsBuilder; 028 import org.apache.log4j.Logger; 029 import org.kuali.kfs.sys.context.SpringContext; 030 import org.kuali.kfs.vnd.VendorPropertyConstants; 031 import org.kuali.rice.kim.bo.Person; 032 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase; 033 import org.kuali.rice.kns.service.LookupService; 034 import org.kuali.rice.kns.util.KualiDecimal; 035 import org.kuali.rice.kns.util.ObjectUtils; 036 import org.kuali.rice.kns.util.TypedArrayList; 037 038 /** 039 * Contains all data for a specific parent or division Vendor, including a link to the <code>VendorHeader</code>, which only 040 * contains information about the parent company, but can be shared between division Vendors. 041 * 042 * @see org.kuali.kfs.vnd.businessobject.VendorHeader 043 */ 044 public class VendorDetail extends PersistableBusinessObjectBase implements VendorRoutingComparable { 045 private static Logger LOG = Logger.getLogger(VendorDetail.class); 046 047 private Integer vendorHeaderGeneratedIdentifier; 048 private Integer vendorDetailAssignedIdentifier; 049 private String vendorNumber; // not persisted in the db 050 private boolean vendorParentIndicator; 051 private String vendorName; 052 private String vendorFirstName; // not persisted in the db 053 private String vendorLastName; // not persisted in the db 054 private String vendorStateForLookup; // not persisted in the db 055 056 private boolean activeIndicator; 057 private String vendorInactiveReasonCode; 058 private String vendorDunsNumber; 059 private String vendorPaymentTermsCode; 060 private String vendorShippingTitleCode; 061 private String vendorShippingPaymentTermsCode; 062 private Boolean vendorConfirmationIndicator; 063 private Boolean vendorPrepaymentIndicator; 064 private Boolean vendorCreditCardIndicator; 065 private KualiDecimal vendorMinimumOrderAmount; 066 private String vendorUrlAddress; 067 private String vendorRemitName; 068 private Boolean vendorRestrictedIndicator; 069 private String vendorRestrictedReasonText; 070 private Date vendorRestrictedDate; 071 private String vendorRestrictedPersonIdentifier; 072 private String vendorSoldToNumber; // not persisted in the db 073 private Integer vendorSoldToGeneratedIdentifier; 074 private Integer vendorSoldToAssignedIdentifier; 075 private String vendorSoldToName; 076 private boolean vendorFirstLastNameIndicator; 077 private boolean taxableIndicator; 078 079 private List<VendorAddress> vendorAddresses; 080 private List<VendorAlias> vendorAliases; 081 private List<VendorContact> vendorContacts; 082 private List<VendorContract> vendorContracts; 083 private List<VendorCustomerNumber> vendorCustomerNumbers; 084 private List<VendorPhoneNumber> vendorPhoneNumbers; 085 private List<VendorShippingSpecialCondition> vendorShippingSpecialConditions; 086 private List<VendorCommodityCode> vendorCommodities; 087 088 private VendorHeader vendorHeader; 089 private VendorInactiveReason vendorInactiveReason; 090 private PaymentTermType vendorPaymentTerms; 091 private ShippingTitle vendorShippingTitle; 092 private ShippingPaymentTerms vendorShippingPaymentTerms; 093 private VendorDetail soldToVendorDetail; 094 private Person vendorRestrictedPerson; 095 096 private String vendorParentName; // not persisted in the db 097 private String defaultAddressLine1; // not persisted in the db 098 private String defaultAddressLine2; // not persisted in the db 099 private String defaultAddressCity; // not persisted in the db 100 private String defaultAddressStateCode; // not persisted in the db 101 private String defaultAddressInternationalProvince; // not persisted in the db 102 private String defaultAddressPostalCode; // not persisted in the db 103 private String defaultAddressCountryCode; // not persisted in the db 104 private String defaultFaxNumber; // not persisted in the db 105 106 /** 107 * Default constructor. 108 */ 109 public VendorDetail() { 110 vendorHeader = new VendorHeader(); 111 vendorAddresses = new TypedArrayList(VendorAddress.class); 112 vendorAliases = new TypedArrayList(VendorAlias.class); 113 vendorContacts = new TypedArrayList(VendorContact.class); 114 vendorContracts = new TypedArrayList(VendorContract.class); 115 vendorCustomerNumbers = new TypedArrayList(VendorCustomerNumber.class); 116 vendorPhoneNumbers = new TypedArrayList(VendorPhoneNumber.class); 117 vendorShippingSpecialConditions = new TypedArrayList(VendorShippingSpecialCondition.class); 118 vendorCommodities = new TypedArrayList(VendorCommodityCode.class); 119 vendorParentIndicator = true; 120 121 } 122 123 public Integer getVendorHeaderGeneratedIdentifier() { 124 return vendorHeaderGeneratedIdentifier; 125 } 126 127 public void setVendorHeaderGeneratedIdentifier(Integer vendorHeaderGeneratedIdentifier) { 128 this.vendorHeaderGeneratedIdentifier = vendorHeaderGeneratedIdentifier; 129 } 130 131 public Integer getVendorDetailAssignedIdentifier() { 132 return vendorDetailAssignedIdentifier; 133 } 134 135 public void setVendorDetailAssignedIdentifier(Integer vendorDetailAssignedIdentifier) { 136 this.vendorDetailAssignedIdentifier = vendorDetailAssignedIdentifier; 137 } 138 139 /** 140 * A concatenation of the vendorHeaderGeneratedIdentifier, a dash, and the vendorDetailAssignedIdentifier 141 * 142 * @return Returns the vendorNumber. 143 */ 144 public String getVendorNumber() { 145 String headerId = ""; 146 String detailId = ""; 147 String vendorNumber = ""; 148 if (ObjectUtils.isNotNull(this.vendorHeaderGeneratedIdentifier)) { 149 headerId = this.vendorHeaderGeneratedIdentifier.toString(); 150 } 151 if (ObjectUtils.isNotNull(this.vendorDetailAssignedIdentifier)) { 152 detailId = this.vendorDetailAssignedIdentifier.toString(); 153 } 154 if (!StringUtils.isEmpty(headerId) && !StringUtils.isEmpty(detailId)) { 155 vendorNumber = headerId + "-" + detailId; 156 } 157 158 return vendorNumber; 159 } 160 161 /** 162 * Sets the vendorNumber attribute value. 163 * If vendorNumber is empty, clears header and detail IDs. 164 * If vendorNumber is invalid, leaves header and detail IDs as were. 165 * 166 * @param vendorNumber The vendorNumber to set. 167 */ 168 public void setVendorNumber(String vendorNumber) { 169 this.vendorNumber = vendorNumber; 170 171 if (StringUtils.isEmpty(vendorNumber)) { 172 vendorHeaderGeneratedIdentifier = null; 173 vendorDetailAssignedIdentifier = null; 174 return; 175 } 176 177 int dashInd = vendorNumber.indexOf('-'); 178 // make sure there's at least one char before and after '-' 179 if (dashInd > 0 && dashInd < vendorNumber.length() - 1) { 180 try { 181 vendorHeaderGeneratedIdentifier = new Integer(vendorNumber.substring(0, dashInd)); 182 vendorDetailAssignedIdentifier = new Integer(vendorNumber.substring(dashInd + 1)); 183 } 184 catch (NumberFormatException e) { 185 // in case of invalid number format 186 } 187 } 188 } 189 190 public String getVendorName() { 191 return vendorName; 192 } 193 194 public void setVendorName(String vendorName) { 195 this.vendorName = vendorName; 196 } 197 198 public Integer getVendorSoldToGeneratedIdentifier() { 199 return vendorSoldToGeneratedIdentifier; 200 } 201 202 public void setVendorSoldToGeneratedIdentifier(Integer vendorSoldToGeneratedIdentifier) { 203 this.vendorSoldToGeneratedIdentifier = vendorSoldToGeneratedIdentifier; 204 } 205 206 public Integer getVendorSoldToAssignedIdentifier() { 207 return vendorSoldToAssignedIdentifier; 208 } 209 210 public void setVendorSoldToAssignedIdentifier(Integer vendorSoldToAssignedIdentifier) { 211 this.vendorSoldToAssignedIdentifier = vendorSoldToAssignedIdentifier; 212 } 213 214 /** 215 * Gets the vendorSoldToNumber attribute. 216 * 217 * @return Returns the vendorSoldToNumber. 218 */ 219 public String getVendorSoldToNumber() { 220 String headerId = ""; 221 String detailId = ""; 222 String vendorSoldToNumber = ""; 223 224 if (this.vendorSoldToGeneratedIdentifier != null) { 225 headerId = this.vendorSoldToGeneratedIdentifier.toString(); 226 } 227 if (this.vendorSoldToAssignedIdentifier != null) { 228 detailId = this.vendorSoldToAssignedIdentifier.toString(); 229 } 230 if (!StringUtils.isEmpty(headerId) && !StringUtils.isEmpty(detailId)) { 231 vendorSoldToNumber = headerId + "-" + detailId; 232 } 233 234 return vendorSoldToNumber; 235 } 236 237 /** 238 * Sets the vendorSoldToNumber attribute value. 239 * If vendorSoldToNumber is empty, clears soldToVendor header and detail IDs. 240 * If vendorSoldToNumber is invalid, leaves soldToVendor header and detail IDs as were. 241 * 242 * @param vendorSoldToNumber The vendorSoldToNumber to set. 243 */ 244 public void setVendorSoldToNumber(String vendorSoldToNumber) { 245 this.vendorSoldToNumber = vendorSoldToNumber; 246 247 if (StringUtils.isEmpty(vendorSoldToNumber)) { 248 vendorSoldToGeneratedIdentifier = null; 249 vendorSoldToAssignedIdentifier = null; 250 return; 251 } 252 253 int dashInd = vendorSoldToNumber.indexOf('-'); 254 // make sure there's at least one char before and after '-' 255 if (dashInd > 0 && dashInd < vendorSoldToNumber.length() - 1) { 256 try { 257 vendorSoldToGeneratedIdentifier = new Integer(vendorSoldToNumber.substring(0, dashInd)); 258 vendorSoldToAssignedIdentifier = new Integer(vendorSoldToNumber.substring(dashInd + 1)); 259 } 260 catch (NumberFormatException e) { 261 // in case of invalid number format 262 } 263 } 264 } 265 266 /** 267 * Gets the vendorSoldToName attribute. 268 * 269 * @return Returns the vendorSoldToName 270 */ 271 public String getVendorSoldToName() { 272 return this.vendorSoldToName; 273 } 274 275 public void setVendorSoldToName(String vendorSoldToName) { 276 this.vendorSoldToName = vendorSoldToName; 277 } 278 279 public String getAltVendorName() { 280 return vendorName; 281 } 282 283 public void setAltVendorName(String altVendorName) { 284 this.vendorName = altVendorName; 285 } 286 287 public String getVendorRemitName() { 288 return vendorRemitName; 289 } 290 291 public void setVendorRemitName(String vendorRemitName) { 292 this.vendorRemitName = vendorRemitName; 293 } 294 295 public boolean isVendorParentIndicator() { 296 return vendorParentIndicator; 297 } 298 299 public void setVendorParentIndicator(boolean vendorParentIndicator) { 300 this.vendorParentIndicator = vendorParentIndicator; 301 } 302 303 public boolean isTaxableIndicator() { 304 return taxableIndicator; 305 } 306 307 public void setTaxableIndicator(boolean taxableIndicator) { 308 this.taxableIndicator = taxableIndicator; 309 } 310 311 public boolean isVendorDebarred() { 312 return (ObjectUtils.isNotNull(getVendorHeader().getVendorDebarredIndicator()) && getVendorHeader().getVendorDebarredIndicator()); 313 } 314 315 public boolean isActiveIndicator() { 316 return activeIndicator; 317 } 318 319 public void setActiveIndicator(boolean activeIndicator) { 320 this.activeIndicator = activeIndicator; 321 } 322 323 public String getVendorInactiveReasonCode() { 324 return vendorInactiveReasonCode; 325 } 326 327 public void setVendorInactiveReasonCode(String vendorInactiveReasonCode) { 328 this.vendorInactiveReasonCode = vendorInactiveReasonCode; 329 } 330 331 public String getVendorPaymentTermsCode() { 332 return vendorPaymentTermsCode; 333 } 334 335 public void setVendorPaymentTermsCode(String vendorPaymentTermsCode) { 336 this.vendorPaymentTermsCode = vendorPaymentTermsCode; 337 } 338 339 public String getVendorShippingTitleCode() { 340 return vendorShippingTitleCode; 341 } 342 343 public void setVendorShippingTitleCode(String vendorShippingTitleCode) { 344 this.vendorShippingTitleCode = vendorShippingTitleCode; 345 } 346 347 public String getVendorShippingPaymentTermsCode() { 348 return vendorShippingPaymentTermsCode; 349 } 350 351 public void setVendorShippingPaymentTermsCode(String vendorShippingPaymentTermsCode) { 352 this.vendorShippingPaymentTermsCode = vendorShippingPaymentTermsCode; 353 } 354 355 public Boolean getVendorConfirmationIndicator() { 356 return vendorConfirmationIndicator; 357 } 358 359 public void setVendorConfirmationIndicator(Boolean vendorConfirmationIndicator) { 360 this.vendorConfirmationIndicator = vendorConfirmationIndicator; 361 } 362 363 public Boolean getVendorPrepaymentIndicator() { 364 return vendorPrepaymentIndicator; 365 } 366 367 public void setVendorPrepaymentIndicator(Boolean vendorPrepaymentIndicator) { 368 this.vendorPrepaymentIndicator = vendorPrepaymentIndicator; 369 } 370 371 public Boolean getVendorCreditCardIndicator() { 372 return vendorCreditCardIndicator; 373 } 374 375 public void setVendorCreditCardIndicator(Boolean vendorCreditCardIndicator) { 376 this.vendorCreditCardIndicator = vendorCreditCardIndicator; 377 } 378 379 public KualiDecimal getVendorMinimumOrderAmount() { 380 return vendorMinimumOrderAmount; 381 } 382 383 public void setVendorMinimumOrderAmount(KualiDecimal vendorMinimumOrderAmount) { 384 this.vendorMinimumOrderAmount = vendorMinimumOrderAmount; 385 } 386 387 public String getVendorUrlAddress() { 388 return vendorUrlAddress; 389 } 390 391 public void setVendorUrlAddress(String vendorUrlAddress) { 392 this.vendorUrlAddress = vendorUrlAddress; 393 } 394 395 public Boolean getVendorRestrictedIndicator() { 396 return vendorRestrictedIndicator; 397 } 398 399 public void setVendorRestrictedIndicator(Boolean vendorRestrictedIndicator) { 400 this.vendorRestrictedIndicator = vendorRestrictedIndicator; 401 } 402 403 public String getVendorRestrictedReasonText() { 404 return vendorRestrictedReasonText; 405 } 406 407 public void setVendorRestrictedReasonText(String vendorRestrictedReasonText) { 408 this.vendorRestrictedReasonText = vendorRestrictedReasonText; 409 } 410 411 public Date getVendorRestrictedDate() { 412 return vendorRestrictedDate; 413 } 414 415 public void setVendorRestrictedDate(Date vendorRestrictedDate) { 416 this.vendorRestrictedDate = vendorRestrictedDate; 417 } 418 419 public String getVendorRestrictedPersonIdentifier() { 420 return vendorRestrictedPersonIdentifier; 421 } 422 423 public void setVendorRestrictedPersonIdentifier(String vendorRestrictedPersonIdentifier) { 424 this.vendorRestrictedPersonIdentifier = vendorRestrictedPersonIdentifier; 425 } 426 427 public String getVendorDunsNumber() { 428 return vendorDunsNumber; 429 } 430 431 public void setVendorDunsNumber(String vendorDunsNumber) { 432 this.vendorDunsNumber = vendorDunsNumber; 433 } 434 435 public VendorHeader getVendorHeader() { 436 return vendorHeader; 437 } 438 439 public void setVendorHeader(VendorHeader vendorHeader) { 440 this.vendorHeader = vendorHeader; 441 } 442 443 public PaymentTermType getVendorPaymentTerms() { 444 return vendorPaymentTerms; 445 } 446 447 /** 448 * Sets the vendorPaymentTerms attribute. 449 * 450 * @param vendorPaymentTerms The vendorPaymentTerms to set. 451 * @deprecated 452 */ 453 public void setVendorPaymentTerms(PaymentTermType vendorPaymentTerms) { 454 this.vendorPaymentTerms = vendorPaymentTerms; 455 } 456 457 public ShippingTitle getVendorShippingTitle() { 458 return vendorShippingTitle; 459 } 460 461 /** 462 * Sets the vendorShippingTitle attribute. 463 * 464 * @param vendorShippingTitle The vendorShippingTitle to set. 465 * @deprecated 466 */ 467 public void setVendorShippingTitle(ShippingTitle vendorShippingTitle) { 468 this.vendorShippingTitle = vendorShippingTitle; 469 } 470 471 public ShippingPaymentTerms getVendorShippingPaymentTerms() { 472 return vendorShippingPaymentTerms; 473 } 474 475 /** 476 * Sets the vendorShippingPaymentTerms attribute. 477 * 478 * @param vendorShippingPaymentTerms The vendorShippingPaymentTerms to set. 479 * @deprecated 480 */ 481 public void setVendorShippingPaymentTerms(ShippingPaymentTerms vendorShippingPaymentTerms) { 482 this.vendorShippingPaymentTerms = vendorShippingPaymentTerms; 483 } 484 485 public VendorInactiveReason getVendorInactiveReason() { 486 return vendorInactiveReason; 487 } 488 489 /** 490 * Sets the vendorInactiveReason attribute value. 491 * 492 * @param vendorInactiveReason The vendorInactiveReason to set. 493 * @deprecated 494 */ 495 public void setVendorInactiveReason(VendorInactiveReason vendorInactiveReason) { 496 this.vendorInactiveReason = vendorInactiveReason; 497 } 498 499 public List<VendorAddress> getVendorAddresses() { 500 return vendorAddresses; 501 } 502 503 public void setVendorAddresses(List<VendorAddress> vendorAddresses) { 504 this.vendorAddresses = vendorAddresses; 505 } 506 507 public List<VendorContact> getVendorContacts() { 508 return vendorContacts; 509 } 510 511 public void setVendorContacts(List<VendorContact> vendorContacts) { 512 this.vendorContacts = vendorContacts; 513 } 514 515 public List<VendorContract> getVendorContracts() { 516 return vendorContracts; 517 } 518 519 public void setVendorContracts(List<VendorContract> vendorContracts) { 520 this.vendorContracts = vendorContracts; 521 } 522 523 public List<VendorCustomerNumber> getVendorCustomerNumbers() { 524 return vendorCustomerNumbers; 525 } 526 527 public void setVendorCustomerNumbers(List<VendorCustomerNumber> vendorCustomerNumbers) { 528 this.vendorCustomerNumbers = vendorCustomerNumbers; 529 } 530 531 public List<VendorShippingSpecialCondition> getVendorShippingSpecialConditions() { 532 return vendorShippingSpecialConditions; 533 } 534 535 public void setVendorShippingSpecialConditions(List<VendorShippingSpecialCondition> vendorShippingSpecialConditions) { 536 this.vendorShippingSpecialConditions = vendorShippingSpecialConditions; 537 } 538 539 public List<VendorCommodityCode> getVendorCommodities() { 540 return vendorCommodities; 541 } 542 543 public void setVendorCommodities(List<VendorCommodityCode> vendorCommodities) { 544 this.vendorCommodities = vendorCommodities; 545 } 546 547 public List<VendorAlias> getVendorAliases() { 548 return vendorAliases; 549 } 550 551 public void setVendorAliases(List<VendorAlias> vendorAliases) { 552 this.vendorAliases = vendorAliases; 553 } 554 555 public List<VendorPhoneNumber> getVendorPhoneNumbers() { 556 return vendorPhoneNumbers; 557 } 558 559 public void setVendorPhoneNumbers(List<VendorPhoneNumber> vendorPhoneNumbers) { 560 this.vendorPhoneNumbers = vendorPhoneNumbers; 561 } 562 563 public String getVendorFirstName() { 564 return vendorFirstName; 565 } 566 567 public void setVendorFirstName(String vendorFirstName) { 568 this.vendorFirstName = vendorFirstName; 569 } 570 571 public String getVendorLastName() { 572 return vendorLastName; 573 } 574 575 public void setVendorLastName(String vendorLastName) { 576 this.vendorLastName = vendorLastName; 577 } 578 579 public VendorDetail getSoldToVendorDetail() { 580 return soldToVendorDetail; 581 } 582 583 public void setSoldToVendorDetail(VendorDetail soldToVendorDetail) { 584 this.soldToVendorDetail = soldToVendorDetail; 585 } 586 587 public boolean isVendorFirstLastNameIndicator() { 588 return vendorFirstLastNameIndicator; 589 } 590 591 public void setVendorFirstLastNameIndicator(boolean vendorFirstLastNameIndicator) { 592 this.vendorFirstLastNameIndicator = vendorFirstLastNameIndicator; 593 } 594 595 public String getVendorStateForLookup() { 596 return vendorStateForLookup; 597 } 598 599 public void setVendorStateForLookup(String vendorStateForLookup) { 600 this.vendorStateForLookup = vendorStateForLookup; 601 } 602 603 public Person getVendorRestrictedPerson() { 604 vendorRestrictedPerson = SpringContext.getBean(org.kuali.rice.kim.service.PersonService.class).updatePersonIfNecessary(vendorRestrictedPersonIdentifier, vendorRestrictedPerson); 605 return vendorRestrictedPerson; 606 } 607 608 /** 609 * Sets the vendorRestrictedPerson attribute. 610 * 611 * @param vendorRestrictedPerson The vendorRestrictedPerson to set. 612 * @deprecated 613 */ 614 public void setVendorRestrictedPerson(Person vendorRestrictedPerson) { 615 this.vendorRestrictedPerson = vendorRestrictedPerson; 616 } 617 618 public String getDefaultAddressLine1() { 619 return defaultAddressLine1; 620 } 621 622 public void setDefaultAddressLine1(String defaultAddressLine1) { 623 this.defaultAddressLine1 = defaultAddressLine1; 624 } 625 626 public String getDefaultAddressCity() { 627 return defaultAddressCity; 628 } 629 630 public void setDefaultAddressCity(String defaultAddressCity) { 631 this.defaultAddressCity = defaultAddressCity; 632 } 633 634 public String getDefaultAddressLine2() { 635 return defaultAddressLine2; 636 } 637 638 public void setDefaultAddressLine2(String defaultAddressLine2) { 639 this.defaultAddressLine2 = defaultAddressLine2; 640 } 641 642 public String getDefaultAddressPostalCode() { 643 return defaultAddressPostalCode; 644 } 645 646 public void setDefaultAddressPostalCode(String defaultAddressPostalCode) { 647 this.defaultAddressPostalCode = defaultAddressPostalCode; 648 } 649 650 public String getDefaultAddressStateCode() { 651 return defaultAddressStateCode; 652 } 653 654 public void setDefaultAddressStateCode(String defaultAddressStateCode) { 655 this.defaultAddressStateCode = defaultAddressStateCode; 656 } 657 658 public String getDefaultAddressInternationalProvince() { 659 return defaultAddressInternationalProvince; 660 } 661 662 public void setDefaultAddressInternationalProvince(String defaultAddressInternationalProvince) { 663 this.defaultAddressInternationalProvince = defaultAddressInternationalProvince; 664 } 665 666 public String getDefaultAddressCountryCode() { 667 return defaultAddressCountryCode; 668 } 669 670 public void setDefaultAddressCountryCode(String defaultAddressCountryCode) { 671 this.defaultAddressCountryCode = defaultAddressCountryCode; 672 } 673 674 public String getDefaultFaxNumber() { 675 return defaultFaxNumber; 676 } 677 678 public void setDefaultFaxNumber(String defaultFaxNumber) { 679 this.defaultFaxNumber = defaultFaxNumber; 680 } 681 682 /** 683 * @see org.kuali.kfs.vnd.document.routing.VendorRoutingComparable#isEqualForRouting(java.lang.Object) 684 */ 685 public boolean isEqualForRouting(Object toCompare) { 686 LOG.debug("Entering isEqualForRouting."); 687 if ((ObjectUtils.isNull(toCompare)) || !(toCompare instanceof VendorDetail)) { 688 return false; 689 } 690 else { 691 VendorDetail detail = (VendorDetail) toCompare; 692 return new EqualsBuilder().append( 693 this.getVendorHeaderGeneratedIdentifier(), detail.getVendorHeaderGeneratedIdentifier()).append( 694 this.getVendorDetailAssignedIdentifier(), detail.getVendorDetailAssignedIdentifier()).append( 695 this.isVendorParentIndicator(), detail.isVendorParentIndicator()).append( 696 this.getVendorName(), detail.getVendorName()).append( 697 this.isActiveIndicator(), detail.isActiveIndicator()).append( 698 this.getVendorInactiveReasonCode(), detail.getVendorInactiveReasonCode()).append( 699 this.getVendorDunsNumber(), detail.getVendorDunsNumber()).append( 700 this.getVendorPaymentTermsCode(), detail.getVendorPaymentTermsCode()).append( 701 this.getVendorShippingTitleCode(), detail.getVendorShippingTitleCode()).append( 702 this.getVendorShippingPaymentTermsCode(), detail.getVendorShippingPaymentTermsCode()).append( 703 this.getVendorConfirmationIndicator(), detail.getVendorConfirmationIndicator()).append( 704 this.getVendorPrepaymentIndicator(), detail.getVendorPrepaymentIndicator()).append( 705 this.getVendorCreditCardIndicator(), detail.getVendorCreditCardIndicator()).append( 706 this.getVendorMinimumOrderAmount(), detail.getVendorMinimumOrderAmount()).append( 707 this.getVendorUrlAddress(), detail.getVendorUrlAddress()).append( 708 this.getVendorRemitName(), detail.getVendorRemitName()).append( 709 this.getVendorRestrictedIndicator(), detail.getVendorRestrictedIndicator()).append( 710 this.getVendorRestrictedReasonText(), detail.getVendorRestrictedReasonText()).append( 711 this.getVendorRestrictedDate(), detail.getVendorRestrictedDate()).append( 712 this.getVendorRestrictedPersonIdentifier(), detail.getVendorRestrictedPersonIdentifier()).append( 713 this.getVendorSoldToGeneratedIdentifier(), detail.getVendorSoldToGeneratedIdentifier()).append( 714 this.getVendorSoldToAssignedIdentifier(), detail.getVendorSoldToAssignedIdentifier()).append( 715 this.getVendorSoldToName(), detail.getVendorSoldToName()).append( 716 this.isVendorFirstLastNameIndicator(), detail.isVendorFirstLastNameIndicator()).isEquals(); 717 } 718 } 719 720 /** 721 * The vendor is B2B if they have a contract that has the B2B 722 * indicator set to Yes. This method returns true if this vendor 723 * is a B2B vendor and false otherwise. 724 * 725 * @return true if this vendor is a B2B vendor and false otherwise. 726 * 727 */ 728 public boolean isB2BVendor() { 729 for (VendorContract contract : this.getVendorContracts()) { 730 if (contract.getVendorB2bIndicator()) { 731 return true; 732 } 733 } 734 return false; 735 } 736 737 public VendorDetail getVendorParent() { 738 Map<String, String> tmpValues = new HashMap<String, String>(); 739 List<VendorDetail> relatedVendors = new ArrayList<VendorDetail>(); 740 tmpValues.put(VendorPropertyConstants.VENDOR_HEADER_GENERATED_ID, getVendorHeaderGeneratedIdentifier().toString()); 741 tmpValues.put(VendorPropertyConstants.VENDOR_PARENT_INDICATOR, "Y"); 742 VendorDetail parentVendor = (VendorDetail) SpringContext.getBean(LookupService.class).findObjectBySearch(VendorDetail.class, tmpValues); 743 return parentVendor; 744 } 745 746 public String getVendorParentName() { 747 if (StringUtils.isNotBlank(this.vendorParentName)) { 748 return vendorParentName; 749 } 750 else if (isVendorParentIndicator()) { 751 setVendorParentName(this.getVendorName()); 752 return vendorParentName; 753 } 754 else { 755 this.setVendorParentName(getVendorParent().getVendorName()); 756 return vendorParentName; 757 } 758 } 759 760 public void setVendorParentName(String vendorParentName) { 761 this.vendorParentName = vendorParentName; 762 } 763 764 765 /** 766 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper() 767 */ 768 protected LinkedHashMap toStringMapper() { 769 LinkedHashMap m = new LinkedHashMap(); 770 if (this.vendorHeaderGeneratedIdentifier != null) { 771 m.put("vendorHeaderGeneratedIdentifier", this.vendorHeaderGeneratedIdentifier.toString()); 772 } 773 if (this.vendorDetailAssignedIdentifier != null) { 774 m.put("vendorDetailAssignedIdentifier", this.vendorDetailAssignedIdentifier.toString()); 775 } 776 777 return m; 778 } 779 780 } 781