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 package org.kuali.kfs.module.purap.document; 017 018 import java.sql.Date; 019 import java.util.List; 020 021 import org.kuali.kfs.coa.businessobject.Account; 022 import org.kuali.kfs.coa.businessobject.Chart; 023 import org.kuali.kfs.coa.businessobject.Organization; 024 import org.kuali.kfs.integration.purap.CapitalAssetSystem; 025 import org.kuali.kfs.module.purap.businessobject.BillingAddress; 026 import org.kuali.kfs.module.purap.businessobject.CapitalAssetSystemState; 027 import org.kuali.kfs.module.purap.businessobject.CapitalAssetSystemType; 028 import org.kuali.kfs.module.purap.businessobject.DeliveryRequiredDateReason; 029 import org.kuali.kfs.module.purap.businessobject.FundingSource; 030 import org.kuali.kfs.module.purap.businessobject.PurApItem; 031 import org.kuali.kfs.module.purap.businessobject.PurchaseOrderTransmissionMethod; 032 import org.kuali.kfs.module.purap.businessobject.PurchasingCapitalAssetItem; 033 import org.kuali.kfs.module.purap.businessobject.PurchasingItem; 034 import org.kuali.kfs.module.purap.businessobject.ReceivingAddress; 035 import org.kuali.kfs.module.purap.businessobject.RecurringPaymentType; 036 import org.kuali.kfs.module.purap.businessobject.RequisitionSource; 037 import org.kuali.kfs.module.purap.document.service.PurchasingDocumentSpecificService; 038 import org.kuali.kfs.module.purap.util.ItemParser; 039 import org.kuali.kfs.vnd.businessobject.CampusParameter; 040 import org.kuali.kfs.vnd.businessobject.PurchaseOrderCostSource; 041 import org.kuali.kfs.vnd.businessobject.VendorContract; 042 import org.kuali.kfs.vnd.businessobject.VendorDetail; 043 import org.kuali.rice.kns.util.KualiDecimal; 044 045 046 /** 047 * Interface for Purchasing Documents. 048 */ 049 public interface PurchasingDocument extends PurchasingAccountsPayableDocument { 050 051 /** 052 * Gets the appropriate <code>{@link ItemParser}</code> for the <code>PurchasingDocument</code> 053 * 054 * @return an ItemParser instance 055 */ 056 public ItemParser getItemParser(); 057 058 public String getDocumentFundingSourceCode(); 059 060 public void setDocumentFundingSourceCode(String fundingSourceCode); 061 062 public String getRequisitionSourceCode(); 063 064 public void setRequisitionSourceCode(String requisitionSourceCode); 065 066 public String getPurchaseOrderTransmissionMethodCode(); 067 068 public void setPurchaseOrderTransmissionMethodCode(String purchaseOrderTransmissionMethodCode); 069 070 public String getPurchaseOrderCostSourceCode(); 071 072 public void setPurchaseOrderCostSourceCode(String purchaseOrderCostSourceCode); 073 074 public String getDeliveryRequiredDateReasonCode(); 075 076 public void setDeliveryRequiredDateReasonCode(String deliveryRequiredDateReasonCode); 077 078 public String getRecurringPaymentTypeCode(); 079 080 public void setRecurringPaymentTypeCode(String recurringPaymentTypeCode); 081 082 public String getChartOfAccountsCode(); 083 084 public void setChartOfAccountsCode(String chartOfAccountsCode); 085 086 public String getOrganizationCode(); 087 088 public void setOrganizationCode(String organizationCode); 089 090 public String getDeliveryCampusCode(); 091 092 public void setDeliveryCampusCode(String deliveryCampusCode); 093 094 public KualiDecimal getPurchaseOrderTotalLimit(); 095 096 public void setPurchaseOrderTotalLimit(KualiDecimal purchaseOrderTotalLimit); 097 098 public String getVendorName(); 099 100 public void setVendorName(String vendorName); 101 102 public String getVendorLine1Address(); 103 104 public void setVendorLine1Address(String vendorLine1Address); 105 106 public String getVendorLine2Address(); 107 108 public void setVendorLine2Address(String vendorLine2Address); 109 110 public String getVendorCityName(); 111 112 public void setVendorCityName(String vendorCityName); 113 114 public String getVendorStateCode(); 115 116 public void setVendorStateCode(String vendorStateCode); 117 118 public String getVendorPostalCode(); 119 120 public void setVendorPostalCode(String vendorPostalCode); 121 122 public String getVendorCountryCode(); 123 124 public void setVendorCountryCode(String vendorCountryCode); 125 126 public Boolean getVendorRestrictedIndicator(); 127 128 public void setVendorRestrictedIndicator(Boolean vendorRestrictedIndicator); 129 130 public String getVendorPhoneNumber(); 131 132 public void setVendorPhoneNumber(String vendorPhoneNumber); 133 134 public String getVendorFaxNumber(); 135 136 public void setVendorFaxNumber(String vendorFaxNumber); 137 138 public Integer getVendorContractGeneratedIdentifier(); 139 140 public void setVendorContractGeneratedIdentifier(Integer vendorContractGeneratedIdentifier); 141 142 public String getVendorNoteText(); 143 144 public void setVendorNoteText(String vendorNoteText); 145 146 public String getRequestorPersonName(); 147 148 public void setRequestorPersonName(String requestorPersonName); 149 150 public String getRequestorPersonEmailAddress(); 151 152 public void setRequestorPersonEmailAddress(String requestorPersonEmailAddress); 153 154 public String getRequestorPersonPhoneNumber(); 155 156 public void setRequestorPersonPhoneNumber(String requestorPersonPhoneNumber); 157 158 public String getNonInstitutionFundOrgChartOfAccountsCode(); 159 160 public void setNonInstitutionFundOrgChartOfAccountsCode(String nonInstitutionFundOrgChartOfAccountsCode); 161 162 public String getNonInstitutionFundOrganizationCode(); 163 164 public void setNonInstitutionFundOrganizationCode(String nonInstitutionFundOrganizationCode); 165 166 public String getNonInstitutionFundChartOfAccountsCode(); 167 168 public void setNonInstitutionFundChartOfAccountsCode(String nonInstitutionFundChartOfAccountsCode); 169 170 public String getNonInstitutionFundAccountNumber(); 171 172 public void setNonInstitutionFundAccountNumber(String nonInstitutionFundAccountNumber); 173 174 public String getDeliveryBuildingCode(); 175 176 public void setDeliveryBuildingCode(String deliveryBuildingCode); 177 178 public String getDeliveryBuildingName(); 179 180 public void setDeliveryBuildingName(String deliveryBuildingName); 181 182 public String getDeliveryBuildingRoomNumber(); 183 184 public void setDeliveryBuildingRoomNumber(String deliveryBuildingRoomNumber); 185 186 public String getDeliveryBuildingLine1Address(); 187 188 public void setDeliveryBuildingLine1Address(String deliveryBuildingLine1Address); 189 190 public String getDeliveryBuildingLine2Address(); 191 192 public void setDeliveryBuildingLine2Address(String deliveryBuildingLine2Address); 193 194 public String getDeliveryCityName(); 195 196 public void setDeliveryCityName(String deliveryCityName); 197 198 public String getDeliveryStateCode(); 199 200 public void setDeliveryStateCode(String deliveryStateCode); 201 202 public String getDeliveryPostalCode(); 203 204 public void setDeliveryPostalCode(String deliveryPostalCode); 205 206 public String getDeliveryCountryCode(); 207 208 public String getDeliveryCountryName(); 209 210 public void setDeliveryCountryCode(String deliveryCountryCode); 211 212 public String getDeliveryToName(); 213 214 public void setDeliveryToName(String deliveryToName); 215 216 public String getDeliveryToEmailAddress(); 217 218 public void setDeliveryToEmailAddress(String deliveryToEmailAddress); 219 220 public String getDeliveryToPhoneNumber(); 221 222 public void setDeliveryToPhoneNumber(String deliveryToPhoneNumber); 223 224 public Date getDeliveryRequiredDate(); 225 226 public void setDeliveryRequiredDate(Date deliveryRequiredDate); 227 228 public String getDeliveryInstructionText(); 229 230 public void setDeliveryInstructionText(String deliveryInstructionText); 231 232 public Date getPurchaseOrderBeginDate(); 233 234 public void setPurchaseOrderBeginDate(Date purchaseOrderBeginDate); 235 236 public Date getPurchaseOrderEndDate(); 237 238 public void setPurchaseOrderEndDate(Date purchaseOrderEndDate); 239 240 public String getInstitutionContactName(); 241 242 public void setInstitutionContactName(String institutionContactName); 243 244 public String getInstitutionContactPhoneNumber(); 245 246 public void setInstitutionContactPhoneNumber(String institutionContactPhoneNumber); 247 248 public String getInstitutionContactEmailAddress(); 249 250 public void setInstitutionContactEmailAddress(String institutionContactEmailAddress); 251 252 public String getBillingName(); 253 254 public void setBillingName(String billingName); 255 256 public String getBillingLine1Address(); 257 258 public void setBillingLine1Address(String billingLine1Address); 259 260 public String getBillingLine2Address(); 261 262 public void setBillingLine2Address(String billingLine2Address); 263 264 public String getBillingCityName(); 265 266 public void setBillingCityName(String billingCityName); 267 268 public String getBillingStateCode(); 269 270 public void setBillingStateCode(String billingStateCode); 271 272 public String getBillingPostalCode(); 273 274 public void setBillingPostalCode(String billingPostalCode); 275 276 public String getBillingCountryCode(); 277 278 public void setBillingCountryCode(String billingCountryCode); 279 280 public String getBillingCountryName(); 281 282 public String getBillingPhoneNumber(); 283 284 public void setBillingPhoneNumber(String receivingPhoneNumber); 285 286 public String getReceivingName(); 287 288 public void setReceivingName(String receivingName); 289 290 public String getReceivingLine1Address(); 291 292 public void setReceivingLine1Address(String receivingLine1Address); 293 294 public String getReceivingLine2Address(); 295 296 public void setReceivingLine2Address(String receivingLine2Address); 297 298 public String getReceivingCityName(); 299 300 public void setReceivingCityName(String receivingCityName); 301 302 public String getReceivingStateCode(); 303 304 public void setReceivingStateCode(String receivingStateCode); 305 306 public String getReceivingPostalCode(); 307 308 public void setReceivingPostalCode(String receivingPostalCode); 309 310 public String getReceivingCountryCode(); 311 312 public String getReceivingCountryName(); 313 314 public void setReceivingCountryCode(String receivingCountryCode); 315 316 public boolean getAddressToVendorIndicator(); 317 318 public void setAddressToVendorIndicator(boolean addressToVendorIndicator); 319 320 public String getExternalOrganizationB2bSupplierIdentifier(); 321 322 public void setExternalOrganizationB2bSupplierIdentifier(String externalOrganizationB2bSupplierIdentifier); 323 324 public boolean getPurchaseOrderAutomaticIndicator(); 325 326 public void setPurchaseOrderAutomaticIndicator(boolean purchaseOrderAutomaticIndicator); 327 328 public FundingSource getFundingSource(); 329 330 public void setFundingSource(FundingSource fundingSource); 331 332 public RequisitionSource getRequisitionSource(); 333 334 /** 335 * @deprecated 336 */ 337 public void setRequisitionSource(RequisitionSource requisitionSource); 338 339 public PurchaseOrderTransmissionMethod getPurchaseOrderTransmissionMethod(); 340 341 /** 342 * @deprecated 343 */ 344 public void setPurchaseOrderTransmissionMethod(PurchaseOrderTransmissionMethod purchaseOrderTransmissionMethod); 345 346 public PurchaseOrderCostSource getPurchaseOrderCostSource(); 347 348 /** 349 * @deprecated 350 */ 351 public void setPurchaseOrderCostSource(PurchaseOrderCostSource purchaseOrderCostSource); 352 353 public DeliveryRequiredDateReason getDeliveryRequiredDateReason(); 354 355 /** 356 * @deprecated 357 */ 358 public void setDeliveryRequiredDateReason(DeliveryRequiredDateReason deliveryRequiredDateReason); 359 360 public RecurringPaymentType getRecurringPaymentType(); 361 362 /** 363 * @deprecated 364 */ 365 public void setRecurringPaymentType(RecurringPaymentType recurringPaymentType); 366 367 public Organization getOrganization(); 368 369 /** 370 * @deprecated 371 */ 372 public void setOrganization(Organization organization); 373 374 public Chart getChartOfAccounts(); 375 376 /** 377 * @deprecated 378 */ 379 public void setChartOfAccounts(Chart chartOfAccounts); 380 381 public CampusParameter getDeliveryCampus(); 382 383 /** 384 * @deprecated 385 */ 386 public void setDeliveryCampus(CampusParameter deliveryCampus); 387 388 public Chart getNonInstitutionFundOrgChartOfAccounts(); 389 390 /** 391 * @deprecated 392 */ 393 public void setNonInstitutionFundOrgChartOfAccounts(Chart nonInstitutionFundOrgChartOfAccounts); 394 395 public Organization getNonInstitutionFundOrganization(); 396 397 /** 398 * @deprecated 399 */ 400 public void setNonInstitutionFundOrganization(Organization nonInstitutionFundOrganization); 401 402 public Account getNonInstitutionFundAccount(); 403 404 /** 405 * @deprecated 406 */ 407 public void setNonInstitutionFundAccount(Account nonInstitutionFundAccount); 408 409 public Chart getNonInstitutionFundChartOfAccounts(); 410 411 /** 412 * @deprecated 413 */ 414 public void setNonInstitutionFundChartOfAccounts(Chart nonInstitutionFundChartOfAccounts); 415 416 public String getVendorPaymentTermsCode(); 417 418 public void setVendorPaymentTermsCode(String vendorPaymentTermsCode); 419 420 public String getVendorShippingPaymentTermsCode(); 421 422 public void setVendorShippingPaymentTermsCode(String vendorShippingPaymentTermsCode); 423 424 public String getVendorShippingTitleCode(); 425 426 public void setVendorShippingTitleCode(String vendorShippingTitleCode); 427 428 public boolean isDeliveryBuildingOtherIndicator(); 429 430 public void setDeliveryBuildingOtherIndicator(boolean deliveryBuildingOtherIndicator); 431 432 public List<PurApItem> getItems(); 433 434 public void setItems(List<PurApItem> items); 435 436 /** 437 * @see org.kuali.kfs.module.purap.document.PurchasingAccountsPayableDocument#getItem(int) 438 */ 439 public PurApItem getItem(int pos); 440 441 /** 442 * @see org.kuali.kfs.module.purap.document.PurchasingAccountsPayableDocument#addItem(PurApItem item) 443 */ 444 public void addItem(PurApItem item); 445 446 /** 447 * @see org.kuali.kfs.module.purap.document.PurchasingAccountsPayableDocument#deleteItem(int lineNum) 448 */ 449 public void deleteItem(int lineNum); 450 451 /** 452 * @see org.kuali.kfs.sys.document.AccountingDocumentBase#getTotalDollarAmount() 453 */ 454 public KualiDecimal getTotalDollarAmount(); 455 456 /** 457 * Sets vendor detail fields based on the specified Vendor Detail. 458 * 459 * @param vendorDetail the specified Vendor Detail. 460 */ 461 public void templateVendorDetail(VendorDetail vendorDetail); 462 463 /** 464 * Sets vendor contract fields based on the specified Vendor Contract. 465 * 466 * @param vendorContract the specified Vendor Contract. 467 */ 468 public void templateVendorContract(VendorContract vendorContract); 469 470 /** 471 * Sets billing address fields based on the specified Billing Address. 472 * 473 * @param billingAddress the specified Billing Address. 474 */ 475 public void templateBillingAddress(BillingAddress billingAddress); 476 477 /** 478 * Sets receiving address fields based on the specified Receiving Address. 479 * 480 * @param receivingAddress the specified Receiving Address. 481 */ 482 public void templateReceivingAddress(ReceivingAddress receivingAddress); 483 484 /** 485 * Loads the default receiving address from database corresponding to the chart/org of this document. 486 */ 487 public void loadReceivingAddress(); 488 489 public boolean isReceivingDocumentRequiredIndicator() ; 490 491 public void setReceivingDocumentRequiredIndicator(boolean receivingDocumentRequiredIndicator); 492 493 public boolean isPaymentRequestPositiveApprovalIndicator(); 494 495 public void setPaymentRequestPositiveApprovalIndicator(boolean paymentRequestPositiveApprovalIndicator); 496 497 public String getCapitalAssetSystemTypeCode(); 498 499 public void setCapitalAssetSystemTypeCode(String capitalAssetSystemTypeCode); 500 501 public String getCapitalAssetSystemStateCode(); 502 503 public void setCapitalAssetSystemStateCode(String capitalAssetSystemStateCode); 504 505 public CapitalAssetSystemType getCapitalAssetSystemType(); 506 507 public void setCapitalAssetSystemType(CapitalAssetSystemType capitalAssetSystemType); 508 509 public CapitalAssetSystemState getCapitalAssetSystemState(); 510 511 public void setCapitalAssetSystemState(CapitalAssetSystemState capitalAssetSystemState); 512 513 public List<CapitalAssetSystem> getPurchasingCapitalAssetSystems(); 514 515 public void setPurchasingCapitalAssetSystems(List<CapitalAssetSystem> purchasingCapitalAssetSystems); 516 517 public List<PurchasingCapitalAssetItem> getPurchasingCapitalAssetItems(); 518 519 public void setPurchasingCapitalAssetItems(List<PurchasingCapitalAssetItem> purchasingCapitalAssetItems); 520 521 public abstract Class getPurchasingCapitalAssetItemClass(); 522 523 public abstract Class getPurchasingCapitalAssetSystemClass(); 524 525 public PurchasingItem getPurchasingItem(Integer itemIdentifier); 526 527 public PurchasingCapitalAssetItem getPurchasingCapitalAssetItem(Integer itemIdentifier); 528 529 public abstract PurchasingDocumentSpecificService getDocumentSpecificService(); 530 531 public void clearCapitalAssetFields(); 532 533 public boolean shouldGiveErrorForEmptyAccountsProration(); 534 }