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 }