1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.kuali.kfs.module.purap.document;
20
21 import java.util.Map;
22
23 import org.apache.commons.lang.StringUtils;
24 import org.kuali.kfs.module.purap.PurapKeyConstants;
25 import org.kuali.kfs.sys.document.FinancialSystemMaintainable;
26 import org.kuali.kfs.vnd.VendorUtils;
27 import org.kuali.rice.kns.document.MaintenanceDocument;
28 import org.kuali.rice.krad.util.GlobalVariables;
29 import org.kuali.rice.krad.util.KRADConstants;
30
31
32
33
34
35
36 public class PurchaseOrderQuoteListMaintainableImpl extends FinancialSystemMaintainable {
37 @Override
38 public Map<String, String> populateNewCollectionLines( Map<String, String> fieldValues, MaintenanceDocument maintenanceDocument, String methodToCall ) {
39 String collName = "quoteListVendors.vendorDetail.vendorNumber";
40 String vendorNumber = (String)fieldValues.get(collName);
41 if (StringUtils.isNotBlank(vendorNumber)) {
42 if (!VendorUtils.validVendorNumberFormat(vendorNumber)) {
43 GlobalVariables.getMessageMap().putError(KRADConstants.MAINTENANCE_ADD_PREFIX + collName , PurapKeyConstants.ERROR_PURCHASE_ORDER_QUOTE_LIST_NON_EXISTENCE_VENDOR);
44 return fieldValues;
45 }
46 else {
47 Integer headerId = VendorUtils.getVendorHeaderId(vendorNumber);
48 Integer detailId = VendorUtils.getVendorDetailId(vendorNumber);
49 resetPreviousVendorInformationOnAddLine(fieldValues, headerId, detailId);
50 }
51 }
52
53 return super.populateNewCollectionLines(fieldValues, maintenanceDocument, methodToCall);
54 }
55
56 private void resetPreviousVendorInformationOnAddLine(Map fieldValues, Integer headerId, Integer detailId) {
57 if (fieldValues.get("quoteListVendors.vendorHeaderGeneratedIdentifier") != null) {
58 fieldValues.put("quoteListVendors.vendorHeaderGeneratedIdentifier", headerId);
59 }
60
61 if (fieldValues.get("quoteListVendors.vendorDetailAssignedIdentifier") != null) {
62 fieldValues.put("quoteListVendors.vendorDetailAssignedIdentifier", detailId);
63 }
64
65 }
66 }