/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.module.purap.fixture;
import org.kuali.kfs.module.purap.PurapConstants.CreditMemoStatuses;
import org.kuali.kfs.module.purap.PurapConstants.PaymentRequestStatuses;
import org.kuali.kfs.module.purap.PurapConstants.PurchaseOrderStatuses;
import org.kuali.kfs.module.purap.PurapConstants.RequisitionStatuses;
import org.kuali.kfs.module.purap.document.PurchasingAccountsPayableDocument;
import org.kuali.kfs.sys.DocumentTestUtils;
import org.kuali.kfs.sys.context.SpringContext;
import org.kuali.rice.kew.api.exception.WorkflowException;
import org.kuali.rice.krad.service.DocumentService;
public enum PurchasingAccountsPayableDocumentFixture {
// REQUISITION FIXTURES
REQ_ONLY_REQUIRED_FIELDS(null, // purapDocumentIdentifier
RequisitionStatuses.APPDOC_IN_PROCESS, // statusCode
null, // vendorHeaderGeneratedIdentifier
null, // vendorDetailAssignedIdentifier
null, // vendorName
null, // vendorLine1Address
null, // vendorLine2Address
null, // vendorCityName
null, // vendorStateCode
null, // vendorAddressInternationalProvinceName
null, // vendorPostalCode
null, // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier,
false), //useTaxIndicator
REQ_WITH_MANUALLY_ENTERED_VENDOR(null, RequisitionStatuses.APPDOC_IN_PROCESS, null, null, "Colts Gear Shop", "111 Champs St", null, "Indy Rocks", "IN", null, "11111", "US", null, null,false),
REQ_TAX(null,
RequisitionStatuses.APPDOC_IN_PROCESS,
1000,
0,
"ABC CLEANING SERVICES",
"123456 BROAD ST",
null,
"TRUMANSBURG",
"SC",
null,
"11111",
"US",
null,
null,
false),
// APO FIXTURES
REQ_VALID_APO(null, // purapDocumentIdentifier
RequisitionStatuses.APPDOC_IN_PROCESS, // statusCode
1002, // vendorHeaderGeneratedIdentifier
0, // vendorDetailAssignedIdentifier
"ABC Cleaning Services", // vendorName
"123456 BROAD ST", // vendorLine1Address
null, // vendorLine2Address
"TRUMANSBURG", // vendorCityName
"NY", // vendorStateCode
null, // vendorAddressInternationalProvinceName
"14886", // vendorPostalCode
"US", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier,
false), //useTaxIndicator
REQ_ALTERNATE_APO(null, // purapDocumentIdentifier
RequisitionStatuses.APPDOC_IN_PROCESS, // statusCode
1016, // vendorHeaderGeneratedIdentifier
0, // vendorDetailAssignedIdentifier
"Physik Instrument L. P.", // vendorName
"16 AUBURN ST", // vendorLine1Address
null, // vendorLine2Address
"AUBURN", // vendorCityName
"MA", // vendorStateCode
null, // vendorAddressInternationalProvinceName
"01501", // vendorPostalCode
"US", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier,
false), //useTaxIndicator
REQ_WITH_RESTRICTED_VENDOR(null, // purapDocumentIdentifier
RequisitionStatuses.APPDOC_IN_PROCESS, // statusCode
1005, // vendorHeaderGeneratedIdentifier
0, // vendorDetailAssignedIdentifier
"RESTRICTED LEGAL SERVICES VENDOR", // vendorName
"123 Hagadorn Rd", // vendorLine1Address
null, // vendorLine2Address
"EAST LANSING", // vendorCityName
"MI", // vendorStateCode
null, // vendorAddressInternationalProvinceName
"48823", // vendorPostalCode
"US", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier,
false), //useTaxIndicator
REQ_WITH_VENDOR_NOT_IN_DATABASE(null, // purapDocumentIdentifier
RequisitionStatuses.APPDOC_IN_PROCESS, // statusCode
-999999999, // vendorHeaderGeneratedIdentifier
-9, // vendorDetailAssignedIdentifier
"MY UNEXISTING VENDOR", // vendorName
"123 Hagadorn Rd", // vendorLine1Address
null, // vendorLine2Address
"EAST LANSING", // vendorCityName
"MI", // vendorStateCode
null, // vendorAddressInternationalProvinceName
"48823", // vendorPostalCode
"US", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier,
false), //useTaxIndicator)
REQ_WITH_DEBARRED_VENDOR(null, // purapDocumentIdentifier
RequisitionStatuses.APPDOC_IN_PROCESS, // statusCode
1004, // vendorHeaderGeneratedIdentifier
0, // vendorDetailAssignedIdentifier
"DEBARRED VENDOR", // vendorName
"123 Hagadorn Rd", // vendorLine1Address
null, // vendorLine2Address
"EAST LANSING", // vendorCityName
"MI", // vendorStateCode
null, // vendorAddressInternationalProvinceName
"48823", // vendorPostalCode
"US", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier,
false), //useTaxIndicator)
REQ_WITH_INACTIVE_VENDOR(null, // purapDocumentIdentifier
RequisitionStatuses.APPDOC_IN_PROCESS, // statusCode
1019, // vendorHeaderGeneratedIdentifier
0, // vendorDetailAssignedIdentifier
"INACTIVE PO VENDOR", // vendorName
"123 Hagadorn Rd", // vendorLine1Address
null, // vendorLine2Address
"EAST LANSING", // vendorCityName
"MI", // vendorStateCode
null, // vendorAddressInternationalProvinceName
"48823", // vendorPostalCode
"US", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier,
false), //useTaxIndicator)
REQ_WITH_DV_VENDOR(null, // purapDocumentIdentifier
RequisitionStatuses.APPDOC_IN_PROCESS, // statusCode
1003, // vendorHeaderGeneratedIdentifier
0, // vendorDetailAssignedIdentifier
"BASIC CORP ACTIVE", // vendorName
"123 Hagadorn Rd", // vendorLine1Address
null, // vendorLine2Address
"EAST LANSING", // vendorCityName
"MI", // vendorStateCode
null, // vendorAddressInternationalProvinceName
"48823", // vendorPostalCode
"US", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier,
false), //useTaxIndicator)
REQ_WITH_INVALID_US_VENDOR_ZIP_CODE_CONTAINS_LETTERS(null, // purapDocumentIdentifier
RequisitionStatuses.APPDOC_IN_PROCESS, // statusCode
1002, // vendorHeaderGeneratedIdentifier
0, // vendorDetailAssignedIdentifier
"BASIC CORP ACTIVE", // vendorName
"123 Hagadorn Rd", // vendorLine1Address
null, // vendorLine2Address
"EAST LANSING", // vendorCityName
"MI", // vendorStateCode
null, // vendorAddressInternationalProvinceName
"ABC12", // vendorPostalCode
"US", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier,
false), //useTaxIndicator)
REQ_WITH_INVALID_US_VENDOR_ZIP_CODE_BAD_FORMAT(null, // purapDocumentIdentifier
RequisitionStatuses.APPDOC_IN_PROCESS, // statusCode
1002, // vendorHeaderGeneratedIdentifier
0, // vendorDetailAssignedIdentifier
"BASIC CORP ACTIVE", // vendorName
"123 Hagadorn Rd", // vendorLine1Address
null, // vendorLine2Address
"EAST LANSING", // vendorCityName
"MI", // vendorStateCode
null, // vendorAddressInternationalProvinceName
"123456", // vendorPostalCode
"US", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier,
false), //useTaxIndicator)
REQ_WITH_INVALID_NON_US_VENDOR_ZIP_CODE_CONTAINS_LETTERS(null, // purapDocumentIdentifier
RequisitionStatuses.APPDOC_IN_PROCESS, // statusCode
1002, // vendorHeaderGeneratedIdentifier
0, // vendorDetailAssignedIdentifier
"BASIC CORP ACTIVE", // vendorName
"123 Hagadorn Rd", // vendorLine1Address
null, // vendorLine2Address
"TOKYO", // vendorCityName
null, // vendorStateCode
null, // vendorAddressInternationalProvinceName
"ABC12", // vendorPostalCode
"JP", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier,
false), //useTaxIndicator)
REQ_WITH_VALID_US_VENDOR_ZIP_CODE_WITH_4_TRAILING_NUMBERS(null, // purapDocumentIdentifier
RequisitionStatuses.APPDOC_IN_PROCESS, // statusCode
1002, // vendorHeaderGeneratedIdentifier
0, // vendorDetailAssignedIdentifier
"BASIC CORP ACTIVE", // vendorName
"123 Hagadorn Rd", // vendorLine1Address
null, // vendorLine2Address
"East Lansing", // vendorCityName
null, // vendorStateCode
null, // vendorAddressInternationalProvinceName
"48823-1234", // vendorPostalCode
"US", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier,
false), //useTaxIndicator)
// PURCHASE ORDER FIXTURES
// TODO f2f: fix the PO one because actually, the vendor must be selected from the database
PO_ONLY_REQUIRED_FIELDS(null, // purapDocumentIdentifier
PurchaseOrderStatuses.APPDOC_IN_PROCESS, // statusCode
1000, // vendorHeaderGeneratedIdentifier
0, // vendorDetailAssignedIdentifier
"ABC Cleaning Services", // vendorName
"123456 BROAD ST", // vendorLine1Address
null, // vendorLine2Address
"TRUMANSBURG", // vendorCityName
"NY", // vendorStateCode
null, // vendorAddressInternationalProvinceName
"14886", // vendorPostalCode
"US", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier,
false), //useTaxIndicator)
PO_WITH_MANUALLY_ENTERED_VENDOR(null, PurchaseOrderStatuses.APPDOC_IN_PROCESS, 1000, 0, "ABC Cleaning Services", "123456 BROAD ST", null, "TRUMANSBURG", "NY", null, "14886", "US", null, null, false),
// PAYMENT REQUEST FIXTURES
PREQ_ONLY_REQUIRED_FIELDS(null, // purapDocumentIdentifier
PaymentRequestStatuses.APPDOC_IN_PROCESS, // statusCode
1010, // vendorHeaderGeneratedIdentifier
2, // vendorDetailAssignedIdentifier
"DIVISION 2 OF PO BASIC", // vendorName
"9988 8TH STREET", // vendorLine1Address
null, // vendorLine2Address
"A PLACE IN THE SUN", // vendorCityName
"CA", // vendorStateCode
null, // vendorAddressInternationalProvinceName
"99888", // vendorPostalCode
"US", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier
false), //useTaxIndicator)
PREQ_VENDOR_FOR_PO_CLOSE_DOC(null, // purapDocumentIdentifier
PaymentRequestStatuses.APPDOC_DEPARTMENT_APPROVED, // statusCode
1000, // vendorHeaderGeneratedIdentifier
0, // vendorDetailAssignedIdentifier
"ABC Cleaning Services", // vendorName
"123456 BROAD ST", // vendorLine1Address
null, // vendorLine2Address
"TRUMANSBURG", // vendorCityName
"NY", // vendorStateCode
null, // vendorAddressInternationalProvinceName
"14886", // vendorPostalCode
"US", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier
false), //useTaxIndicator)
// CREDIT MEMO FIXTURES
CM_ONLY_REQUIRED_FIELDS(null, // purapDocumentIdentifier
CreditMemoStatuses.APPDOC_IN_PROCESS, // statusCode
1000, // vendorHeaderGeneratedIdentifier
0, // vendorDetailAssignedIdentifier
"ABC Cleaning Services", // vendorName
"123456 BROAD ST", // vendorLine1Address
null, // vendorLine2Address
"TRUMANSBURG", // vendorCityName
"NY", // vendorStateCode
null, // vendorAddressInternationalProvinceName
"14886", // vendorPostalCode
"US", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier,
false), //useTaxIndicator)
REQ_MULTI_QUANTITY(null, // purapDocumentIdentifier
RequisitionStatuses.APPDOC_IN_PROCESS, // statusCode
1002, // vendorHeaderGeneratedIdentifier
0, // vendorDetailAssignedIdentifier
"MK CORPORATION ACTIVE", // vendorName
"3894 SOUTH ST", // vendorLine1Address
"P.O. BOX 3455", // vendorLine2Address
"SPRINGFIELD", // vendorCityName
"IL", // vendorStateCode
null, // vendorAddressInternationalProvinceName
"33555", // vendorPostalCode
"US", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier,
false), //useTaxIndicator)
REQ_MULTI_NON_QUANTITY(null, // purapDocumentIdentifier
RequisitionStatuses.APPDOC_IN_PROCESS, // statusCode
1016, // vendorHeaderGeneratedIdentifier
0, // vendorDetailAssignedIdentifier
"PHYSIK INSTRUMENT L.P.", // vendorName
"16 AUBURN ST", // vendorLine1Address
null, // vendorLine2Address
"AUBURN", // vendorCityName
"MA", // vendorStateCode
null, // vendorAddressInternationalProvinceName
"01501", // vendorPostalCode
"US", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier,
false), //useTaxIndicator)
EINVOICE_PO(null, // purapDocumentIdentifier
PurchaseOrderStatuses.APPDOC_IN_PROCESS, // statusCode
1001, // vendorHeaderGeneratedIdentifier
0, // vendorDetailAssignedIdentifier
"KUALI UNIVERSITY", // vendorName
"123456 BROAD ST", // vendorLine1Address
null, // vendorLine2Address
"TRUMANSBURG", // vendorCityName
"NY", // vendorStateCode
null, // vendorAddressInternationalProvinceName
"14886", // vendorPostalCode
"US", // vendorCountryCode
null, // vendorCustomerNumber
null, // accountsPayablePurchasingDocumentLinkIdentifier,
false), //useTaxIndicator)
;
public final Integer purapDocumentIdentifier;
public final String statusCode;
public final Integer vendorHeaderGeneratedIdentifier;
public final Integer vendorDetailAssignedIdentifier;
public final String vendorName;
public final String vendorLine1Address;
public final String vendorLine2Address;
public final String vendorCityName;
public final String vendorStateCode;
public final String vendorAddressInternationalProvinceName;
public final String vendorPostalCode;
public final String vendorCountryCode;
public final String vendorCustomerNumber;
public final Integer accountsPayablePurchasingDocumentLinkIdentifier;
public final boolean useTaxIndicator;
private PurchasingAccountsPayableDocumentFixture(Integer purapDocumentIdentifier, String statusCode, Integer vendorHeaderGeneratedIdentifier, Integer vendorDetailAssignedIdentifier, String vendorName, String vendorLine1Address, String vendorLine2Address, String vendorCityName, String vendorStateCode, String vendorAddressInternationalProvinceName, String vendorPostalCode, String vendorCountryCode, String vendorCustomerNumber, Integer accountsPayablePurchasingDocumentLinkIdentifier,boolean useTaxIndicator) {
this.purapDocumentIdentifier = purapDocumentIdentifier;
this.statusCode = statusCode;
this.vendorHeaderGeneratedIdentifier = vendorHeaderGeneratedIdentifier;
this.vendorDetailAssignedIdentifier = vendorDetailAssignedIdentifier;
this.vendorName = vendorName;
this.vendorLine1Address = vendorLine1Address;
this.vendorLine2Address = vendorLine2Address;
this.vendorCityName = vendorCityName;
this.vendorStateCode = vendorStateCode;
this.vendorAddressInternationalProvinceName = vendorAddressInternationalProvinceName;
this.vendorPostalCode = vendorPostalCode;
this.vendorCountryCode = vendorCountryCode;
this.vendorCustomerNumber = vendorCustomerNumber;
this.accountsPayablePurchasingDocumentLinkIdentifier = accountsPayablePurchasingDocumentLinkIdentifier;
this.useTaxIndicator = useTaxIndicator;
}
public PurchasingAccountsPayableDocument createPurchasingAccountsPayableDocument(Class clazz) {
PurchasingAccountsPayableDocument doc = null;
try {
doc = (PurchasingAccountsPayableDocument) DocumentTestUtils.createDocument(SpringContext.getBean(DocumentService.class), clazz);
}
catch (WorkflowException e) {
throw new RuntimeException("Document creation failed.");
}
doc.setPurapDocumentIdentifier(this.purapDocumentIdentifier);
doc.setApplicationDocumentStatus(this.statusCode);
doc.setVendorHeaderGeneratedIdentifier(this.vendorHeaderGeneratedIdentifier);
doc.setVendorDetailAssignedIdentifier(this.vendorDetailAssignedIdentifier);
doc.setVendorName(this.vendorName);
doc.setVendorLine1Address(this.vendorLine1Address);
doc.setVendorLine2Address(this.vendorLine2Address);
doc.setVendorCityName(this.vendorCityName);
doc.setVendorStateCode(this.vendorStateCode);
doc.setVendorAddressInternationalProvinceName(this.vendorAddressInternationalProvinceName);
doc.setVendorPostalCode(this.vendorPostalCode);
doc.setVendorCountryCode(this.vendorCountryCode);
doc.setVendorCustomerNumber(this.vendorCustomerNumber);
doc.setAccountsPayablePurchasingDocumentLinkIdentifier(this.accountsPayablePurchasingDocumentLinkIdentifier);
// TODO f2f: (chris) add items and accounts
return doc;
}
}