use of org.kuali.kfs.vnd.businessobject.CommodityCode in project cu-kfs by CU-CommunityApps.
the class PurchaseOrderDocument method populatePurchaseOrderFromRequisition.
/**
* Populates this Purchase Order from the related Requisition Document.
*
* @param requisitionDocument the Requisition Document from which field values are copied.
*/
public void populatePurchaseOrderFromRequisition(RequisitionDocument requisitionDocument) {
this.setPurchaseOrderCreateTimestamp(SpringContext.getBean(DateTimeService.class).getCurrentTimestamp());
this.getDocumentHeader().setOrganizationDocumentNumber(requisitionDocument.getDocumentHeader().getOrganizationDocumentNumber());
this.getDocumentHeader().setDocumentDescription(requisitionDocument.getDocumentHeader().getDocumentDescription());
this.getDocumentHeader().setExplanation(requisitionDocument.getDocumentHeader().getExplanation());
this.setBillingName(requisitionDocument.getBillingName());
this.setBillingLine1Address(requisitionDocument.getBillingLine1Address());
this.setBillingLine2Address(requisitionDocument.getBillingLine2Address());
this.setBillingCityName(requisitionDocument.getBillingCityName());
this.setBillingStateCode(requisitionDocument.getBillingStateCode());
this.setBillingPostalCode(requisitionDocument.getBillingPostalCode());
this.setBillingCountryCode(requisitionDocument.getBillingCountryCode());
this.setBillingPhoneNumber(requisitionDocument.getBillingPhoneNumber());
this.setBillingEmailAddress(requisitionDocument.getBillingEmailAddress());
this.setReceivingName(requisitionDocument.getReceivingName());
this.setReceivingCityName(requisitionDocument.getReceivingCityName());
this.setReceivingLine1Address(requisitionDocument.getReceivingLine1Address());
this.setReceivingLine2Address(requisitionDocument.getReceivingLine2Address());
this.setReceivingStateCode(requisitionDocument.getReceivingStateCode());
this.setReceivingPostalCode(requisitionDocument.getReceivingPostalCode());
this.setReceivingCountryCode(requisitionDocument.getReceivingCountryCode());
this.setAddressToVendorIndicator(requisitionDocument.getAddressToVendorIndicator());
this.setDeliveryBuildingCode(requisitionDocument.getDeliveryBuildingCode());
this.setDeliveryBuildingRoomNumber(requisitionDocument.getDeliveryBuildingRoomNumber());
this.setDeliveryBuildingName(requisitionDocument.getDeliveryBuildingName());
this.setDeliveryCampusCode(requisitionDocument.getDeliveryCampusCode());
this.setDeliveryCityName(requisitionDocument.getDeliveryCityName());
this.setDeliveryCountryCode(requisitionDocument.getDeliveryCountryCode());
this.setDeliveryInstructionText(requisitionDocument.getDeliveryInstructionText());
this.setDeliveryBuildingLine1Address(requisitionDocument.getDeliveryBuildingLine1Address());
this.setDeliveryBuildingLine2Address(requisitionDocument.getDeliveryBuildingLine2Address());
this.setDeliveryPostalCode(requisitionDocument.getDeliveryPostalCode());
this.setDeliveryRequiredDate(requisitionDocument.getDeliveryRequiredDate());
this.setDeliveryRequiredDateReasonCode(requisitionDocument.getDeliveryRequiredDateReasonCode());
this.setDeliveryStateCode(requisitionDocument.getDeliveryStateCode());
this.setDeliveryToEmailAddress(requisitionDocument.getDeliveryToEmailAddress());
this.setDeliveryToName(requisitionDocument.getDeliveryToName());
this.setDeliveryToPhoneNumber(requisitionDocument.getDeliveryToPhoneNumber());
this.setDeliveryBuildingOtherIndicator(requisitionDocument.isDeliveryBuildingOtherIndicator());
this.setPurchaseOrderBeginDate(requisitionDocument.getPurchaseOrderBeginDate());
this.setPurchaseOrderCostSourceCode(requisitionDocument.getPurchaseOrderCostSourceCode());
this.setPostingYear(requisitionDocument.getPostingYear());
this.setPurchaseOrderEndDate(requisitionDocument.getPurchaseOrderEndDate());
this.setChartOfAccountsCode(requisitionDocument.getChartOfAccountsCode());
this.setDocumentFundingSourceCode(requisitionDocument.getDocumentFundingSourceCode());
this.setInstitutionContactEmailAddress(requisitionDocument.getInstitutionContactEmailAddress());
this.setInstitutionContactName(requisitionDocument.getInstitutionContactName());
this.setInstitutionContactPhoneNumber(requisitionDocument.getInstitutionContactPhoneNumber());
this.setNonInstitutionFundAccountNumber(requisitionDocument.getNonInstitutionFundAccountNumber());
this.setNonInstitutionFundChartOfAccountsCode(requisitionDocument.getNonInstitutionFundChartOfAccountsCode());
this.setNonInstitutionFundOrgChartOfAccountsCode(requisitionDocument.getNonInstitutionFundOrgChartOfAccountsCode());
this.setNonInstitutionFundOrganizationCode(requisitionDocument.getNonInstitutionFundOrganizationCode());
this.setOrganizationCode(requisitionDocument.getOrganizationCode());
this.setRecurringPaymentTypeCode(requisitionDocument.getRecurringPaymentTypeCode());
this.setRequestorPersonEmailAddress(requisitionDocument.getRequestorPersonEmailAddress());
this.setRequestorPersonName(requisitionDocument.getRequestorPersonName());
this.setRequestorPersonPhoneNumber(requisitionDocument.getRequestorPersonPhoneNumber());
this.setRequisitionIdentifier(requisitionDocument.getPurapDocumentIdentifier());
this.setPurchaseOrderTotalLimit(requisitionDocument.getPurchaseOrderTotalLimit());
this.setPurchaseOrderTransmissionMethodCode(requisitionDocument.getPurchaseOrderTransmissionMethodCode());
this.setUseTaxIndicator(requisitionDocument.isUseTaxIndicator());
this.setVendorCityName(requisitionDocument.getVendorCityName());
this.setVendorContractGeneratedIdentifier(requisitionDocument.getVendorContractGeneratedIdentifier());
this.setVendorCountryCode(requisitionDocument.getVendorCountryCode());
this.setVendorCustomerNumber(requisitionDocument.getVendorCustomerNumber());
this.setVendorAttentionName(requisitionDocument.getVendorAttentionName());
this.setVendorDetailAssignedIdentifier(requisitionDocument.getVendorDetailAssignedIdentifier());
this.setVendorFaxNumber(requisitionDocument.getVendorFaxNumber());
this.setVendorHeaderGeneratedIdentifier(requisitionDocument.getVendorHeaderGeneratedIdentifier());
this.setVendorLine1Address(requisitionDocument.getVendorLine1Address());
this.setVendorLine2Address(requisitionDocument.getVendorLine2Address());
this.setVendorAddressInternationalProvinceName(requisitionDocument.getVendorAddressInternationalProvinceName());
this.setVendorName(requisitionDocument.getVendorName());
this.setVendorNoteText(requisitionDocument.getVendorNoteText());
this.setVendorPhoneNumber(requisitionDocument.getVendorPhoneNumber());
this.setVendorPostalCode(requisitionDocument.getVendorPostalCode());
this.setVendorStateCode(requisitionDocument.getVendorStateCode());
this.setVendorRestrictedIndicator(requisitionDocument.getVendorRestrictedIndicator());
this.setJustification(requisitionDocument.getJustification());
// KFSPTS-1458 -- Added, req has this new attribute's value and it needs to be carried over to the po.
this.setVendorEmailAddress(requisitionDocument.getVendorEmailAddress());
this.setExternalOrganizationB2bSupplierIdentifier(requisitionDocument.getExternalOrganizationB2bSupplierIdentifier());
this.setRequisitionSourceCode(requisitionDocument.getRequisitionSourceCode());
this.setAccountsPayablePurchasingDocumentLinkIdentifier(requisitionDocument.getAccountsPayablePurchasingDocumentLinkIdentifier());
this.setReceivingDocumentRequiredIndicator(requisitionDocument.isReceivingDocumentRequiredIndicator());
this.setPaymentRequestPositiveApprovalIndicator(requisitionDocument.isPaymentRequestPositiveApprovalIndicator());
setApplicationDocumentStatus(PurapConstants.PurchaseOrderStatuses.APPDOC_IN_PROCESS);
this.setAccountDistributionMethod(requisitionDocument.getAccountDistributionMethod());
// Copy items from requisition (which will copy the item's accounts and capital assets)
List<PurchaseOrderItem> items = new ArrayList();
for (PurApItem reqItem : ((PurchasingAccountsPayableDocument) requisitionDocument).getItems()) {
RequisitionCapitalAssetItem reqCamsItem = (RequisitionCapitalAssetItem) requisitionDocument.getPurchasingCapitalAssetItemByItemIdentifier(reqItem.getItemIdentifier().intValue());
items.add(new PurchaseOrderItem((RequisitionItem) reqItem, this, reqCamsItem));
}
this.setItems(items);
// Copy capital asset information that is directly off the document.
this.setCapitalAssetSystemTypeCode(requisitionDocument.getCapitalAssetSystemTypeCode());
this.setCapitalAssetSystemStateCode(requisitionDocument.getCapitalAssetSystemStateCode());
for (CapitalAssetSystem capitalAssetSystem : requisitionDocument.getPurchasingCapitalAssetSystems()) {
this.getPurchasingCapitalAssetSystems().add(new PurchaseOrderCapitalAssetSystem(capitalAssetSystem));
}
this.fixItemReferences();
// KFSUPGRADE-346/KITI-727
if (ObjectUtils.isNull(getPurapDocumentIdentifier())) {
// need retrieve the next available PO id to save in GL entries (only do if purap id is null which should be on first
// save)
SequenceAccessorService sas = SpringContext.getBean(SequenceAccessorService.class);
Long poSequenceNumber = sas.getNextAvailableSequenceNumber("PO_ID", this.getClass());
setPurapDocumentIdentifier(poSequenceNumber.intValue());
}
// KFSUPGRADE-337/KITI-2414 : checking for duplicate sensitive data types
Set<String> currentSensitiveDataCodes = new HashSet<String>();
if (purchaseOrderSensitiveData != null) {
for (PurchaseOrderSensitiveData sensitiveData : purchaseOrderSensitiveData) {
currentSensitiveDataCodes.add(sensitiveData.getSensitiveDataCode());
}
}
if (requisitionDocument.isSensitive()) {
for (PurchasingItemBase pib : (List<PurchasingItemBase>) requisitionDocument.getItems()) {
CommodityCode cc = pib.getCommodityCode();
if (cc != null && cc.getSensitiveDataCode() != null && currentSensitiveDataCodes.add(cc.getSensitiveDataCode())) {
if (purchaseOrderSensitiveData == null) {
boolean addNewData = true;
purchaseOrderSensitiveData = getPurchaseOrderSensitiveData();
for (PurchaseOrderSensitiveData sensitiveData : purchaseOrderSensitiveData) {
if (!currentSensitiveDataCodes.add(sensitiveData.getSensitiveDataCode())) {
addNewData = false;
}
}
if (addNewData) {
purchaseOrderSensitiveData.add(new PurchaseOrderSensitiveData(getPurapDocumentIdentifier(), getRequisitionIdentifier(), cc.getSensitiveDataCode()));
}
} else {
purchaseOrderSensitiveData.add(new PurchaseOrderSensitiveData(getPurapDocumentIdentifier(), getRequisitionIdentifier(), cc.getSensitiveDataCode()));
}
}
}
}
if (purchaseOrderSensitiveData != null) {
SpringContext.getBean(BusinessObjectService.class).save(purchaseOrderSensitiveData);
}
}
use of org.kuali.kfs.vnd.businessobject.CommodityCode in project cu-kfs by CU-CommunityApps.
the class CuVendorRule method processAddCollectionLineBusinessRules.
public boolean processAddCollectionLineBusinessRules(MaintenanceDocument document, String collectionName, PersistableBusinessObject bo) {
boolean success = super.processAddCollectionLineBusinessRules(document, collectionName, bo);
if (collectionName.equals(VendorConstants.VENDOR_HEADER_ATTR + "." + VendorPropertyConstants.VENDOR_SUPPLIER_DIVERSITIES)) {
VendorDetail vendorDetail = (VendorDetail) document.getDocumentBusinessObject();
VendorHeader vendorHeader = vendorDetail.getVendorHeader();
List<VendorSupplierDiversity> vendorSupplierDiversities = vendorHeader.getVendorSupplierDiversities();
if (vendorSupplierDiversities.size() > 0) {
int i = 0;
for (VendorSupplierDiversity vendor : vendorSupplierDiversities) {
if (((CuVendorSupplierDiversityExtension) vendor.getExtension()).getVendorSupplierDiversityExpirationDate() == null) {
success = false;
putFieldError(VendorConstants.VENDOR_HEADER_ATTR + "." + VendorPropertyConstants.VENDOR_SUPPLIER_DIVERSITIES + "[" + i + "]." + CUVendorPropertyConstants.SUPPLIER_DIVERSITY_EXPRIATION, CUVendorKeyConstants.ERROR_DOCUMENT_VNDMAINT_SUPPLIER_DIVERSITY_DATE_BLANK);
} else if (((CuVendorSupplierDiversityExtension) vendor.getExtension()).getVendorSupplierDiversityExpirationDate().before(new Date())) {
// Only check expiration date on new vendors
if (document.isNew()) {
success = false;
putFieldError(VendorConstants.VENDOR_HEADER_ATTR + "." + VendorPropertyConstants.VENDOR_SUPPLIER_DIVERSITIES + "[" + i + "]." + CUVendorPropertyConstants.SUPPLIER_DIVERSITY_EXPRIATION, CUVendorKeyConstants.ERROR_DOCUMENT_VNDMAINT_SUPPLIER_DIVERSITY_DATE_IN_PAST);
}
}
i++;
}
}
if (!success) {
return success;
}
}
if (collectionName.equals("vendorCommodities")) {
VendorCommodityCode codeToBeValidated = (VendorCommodityCode) bo;
CommodityCode persistedCommodity = commodityCodeService.getByPrimaryId(codeToBeValidated.getPurchasingCommodityCode());
if (persistedCommodity == null) {
// a commodity code entered by a user does not exist
putFieldError("add.vendorCommodities.purchasingCommodityCode", CUVendorKeyConstants.ERROR_VENDOR_COMMODITY_CODE_DOES_NOT_EXIST, codeToBeValidated.getPurchasingCommodityCode());
success = false;
}
if (codeToBeValidated.isCommodityDefaultIndicator()) {
VendorDetail vendorDetail = (VendorDetail) document.getDocumentBusinessObject();
List<VendorCommodityCode> vendorCommodities = vendorDetail.getVendorCommodities();
Iterator<VendorCommodityCode> commodities = vendorCommodities.iterator();
int indice = 0;
while (commodities.hasNext()) {
VendorCommodityCode commodity = (VendorCommodityCode) commodities.next();
if (commodity.isCommodityDefaultIndicator()) {
// more than one "default" commodity code has been specified
putFieldError("add.vendorCommodities.commodityDefaultIndicator", CUVendorKeyConstants.ERROR_DEFAULT_VENDOR_COMMODITY_CODE_ALREADY_EXISTS, Integer.toString(indice));
success = false;
}
indice++;
}
}
VendorDetail vendorDetail = (VendorDetail) document.getDocumentBusinessObject();
boolean commodityAlreadyAssignedToThisVendor = false;
Iterator<VendorCommodityCode> codes = vendorDetail.getVendorCommodities().iterator();
while (codes.hasNext()) {
VendorCommodityCode vcc = codes.next();
if (vcc.getPurchasingCommodityCode().equals(codeToBeValidated.getPurchasingCommodityCode())) {
commodityAlreadyAssignedToThisVendor = true;
break;
}
}
if (commodityAlreadyAssignedToThisVendor) {
putFieldError("add.vendorCommodities.purchasingCommodityCode", CUVendorKeyConstants.ERROR_VENDOR_COMMODITY_CODE_ALREADY_ASSIGNED_TO_VENDOR);
success = false;
}
return success;
}
return success;
}
use of org.kuali.kfs.vnd.businessobject.CommodityCode in project cu-kfs by CU-CommunityApps.
the class CuVendorRule method validateB2BDefaultCommodityCode.
protected boolean validateB2BDefaultCommodityCode(MaintenanceDocument document) {
VendorDetail vendorDetail = (VendorDetail) document.getNewMaintainableObject().getBusinessObject();
boolean success = true;
List<VendorContract> vendorContracts = vendorDetail.getVendorContracts();
List<VendorCommodityCode> vendorCommodities = vendorDetail.getVendorCommodities();
Iterator<VendorContract> it = vendorContracts.iterator();
boolean isB2b = false;
while (it.hasNext()) {
VendorContract contract = (VendorContract) it.next();
if (contract.getVendorB2bIndicator()) {
isB2b = true;
break;
}
}
if (isB2b) {
if (vendorCommodities.size() == 0) {
success = false;
// no vendor commodities exist
putFieldError("vendorCommodities", CUVendorKeyConstants.ERROR_VENDOR_COMMODITY_CODE_DEFAULT_IS_REQUIRED_FOR_B2B);
return success;
}
boolean defaultCommodityCodeSpecified = false;
Iterator<VendorCommodityCode> commodities = vendorCommodities.iterator();
int indice = 0;
while (commodities.hasNext()) {
VendorCommodityCode commodity = (VendorCommodityCode) commodities.next();
if (commodity.isCommodityDefaultIndicator() && !defaultCommodityCodeSpecified) {
defaultCommodityCodeSpecified = true;
} else if (commodity.isCommodityDefaultIndicator()) {
// more than one "default" commodity code has been specified
putFieldError("vendorCommodities[" + indice + "].commodityDefaultIndicator", CUVendorKeyConstants.ERROR_DEFAULT_VENDOR_COMMODITY_CODE_ALREADY_EXISTS);
success = false;
}
CommodityCode persistedCommodity = commodityCodeService.getByPrimaryId(commodity.getPurchasingCommodityCode());
if (persistedCommodity == null) {
// a commodity code entered by a user does not exist
putFieldError("vendorCommodities[" + indice + "].purchasingCommodityCode", CUVendorKeyConstants.ERROR_VENDOR_COMMODITY_CODE_DOES_NOT_EXIST, commodity.getPurchasingCommodityCode());
success = false;
}
indice++;
}
if (!defaultCommodityCodeSpecified) {
// no default commodity code has been specified and the vendor has a b2b contract
putFieldError("vendorCommodities", CUVendorKeyConstants.ERROR_VENDOR_COMMODITY_CODE_DEFAULT_IS_REQUIRED_FOR_B2B);
success = false;
}
}
return success;
}
use of org.kuali.kfs.vnd.businessobject.CommodityCode in project cu-kfs by CU-CommunityApps.
the class CommodityCodeUpdateServiceImpl method writeCommodityCodeReportData.
/**
* Writes the report of totals to the given reportWriterService
* @param reportWriterService a report writer service to write the ledger summary report to
*/
public void writeCommodityCodeReportData(List<CommodityCode> codes) {
boolean firstTime = true;
if (ObjectUtils.isNotNull(codes) && codes.size() > 0) {
for (CommodityCode codeLine : codes) {
if (firstTime) {
commodityCodeReportWriterService.writeTableHeader(codeLine);
firstTime = false;
}
commodityCodeReportWriterService.writeTableRow(codeLine);
}
}
}
use of org.kuali.kfs.vnd.businessobject.CommodityCode in project cu-kfs by CU-CommunityApps.
the class PurchasingDocumentBase method populateDocumentForRouting.
/**
* @see org.kuali.kfs.module.purap.document.PurchasingAccountsPayableDocumentBase#populateDocumentForRouting()
*/
@Override
public void populateDocumentForRouting() {
commodityCodesForRouting = new ArrayList<CommodityCode>();
List<PurchasingItemBase> previousPOItems = new ArrayList<PurchasingItemBase>();
if (this instanceof PurchaseOrderAmendmentDocument) {
previousPOItems = getPreviousPoItems();
}
for (PurchasingItemBase item : (List<PurchasingItemBase>) this.getItems()) {
// KFSPTS-1973
if (item.getCommodityCode() != null && !commodityCodesForRouting.contains(item.getCommodityCode())) {
if (this instanceof PurchaseOrderAmendmentDocument) {
if (includeItem(item, previousPOItems)) {
commodityCodesForRouting.add(item.getCommodityCode());
}
} else {
commodityCodesForRouting.add(item.getCommodityCode());
}
}
}
super.populateDocumentForRouting();
}
Aggregations