Subversion Repositories SmartDukaan

Rev

Rev 3524 | Rev 3567 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3524 Rev 3558
Line 1... Line 1...
1
package in.shop2020.catalog.dashboard.client;
1
package in.shop2020.catalog.dashboard.client;
2
 
2
 
3
import in.shop2020.catalog.dashboard.shared.Item;
3
import in.shop2020.catalog.dashboard.shared.Item;
-
 
4
import in.shop2020.catalog.dashboard.shared.SourcePricings;
4
import in.shop2020.catalog.dashboard.shared.Utils;
5
import in.shop2020.catalog.dashboard.shared.Utils;
5
import in.shop2020.catalog.dashboard.shared.VendorItemMapping;
6
import in.shop2020.catalog.dashboard.shared.VendorItemMapping;
6
import in.shop2020.catalog.dashboard.shared.VendorPricings;
7
import in.shop2020.catalog.dashboard.shared.VendorPricings;
7
 
8
 
8
import java.util.Date;
9
import java.util.Date;
Line 40... Line 41...
40
                      TABLE_INDEX_MAPPING_BUTTON = 2,
41
                      TABLE_INDEX_MAPPING_BUTTON = 2,
41
                      TABLE_INDEX_MAPPING_VENDORID = 3, 
42
                      TABLE_INDEX_MAPPING_VENDORID = 3, 
42
                      TABLE_INDEX_MAPPING_ITEM_KEY_OLD = 4;
43
                      TABLE_INDEX_MAPPING_ITEM_KEY_OLD = 4;
43
                      
44
                      
44
    private final int TABLE_INDEX_PRICING_VENDOR_DESC = 0, 
45
    private final int TABLE_INDEX_PRICING_VENDOR_DESC = 0, 
45
                      TABLE_INDEX_PRICING_MOP = 1,
46
    				  TABLE_INDEX_PRICING_MOP = 1,
46
                      TABLE_INDEX_PRICING_DP = 2,
47
                      TABLE_INDEX_PRICING_DP = 2,
47
                      TABLE_INDEX_PRICING_TP = 3,
48
                      TABLE_INDEX_PRICING_TP = 3,
48
                      TABLE_INDEX_PRICING_BUTTON = 4,
49
                      TABLE_INDEX_PRICING_BUTTON = 4,
49
                      TABLE_INDEX_PRICING_VENDORID = 5;
50
                      TABLE_INDEX_PRICING_VENDORID = 5;
-
 
51
 
-
 
52
    private final int TABLE_INDEX_SOURCE_PRICING_SOURCE_DESC = 0, 
-
 
53
    				  TABLE_INDEX_SOURCE_PRICING_MRP = 1,
-
 
54
    				  TABLE_INDEX_SOURCE_PRICING_SELLING_PRICE = 2,
-
 
55
    				  TABLE_INDEX_SOURCE_PRICING_BUTTON = 3,
-
 
56
    				  TABLE_INDEX_SOURCE_PRICING_SOURCE_ID = 4;
50
    
57
 
51
    private final int TABLE_INDEX_WAREHOUSE_ID = 0,
58
    private final int TABLE_INDEX_WAREHOUSE_ID = 0,
52
                      TABLE_INDEX_WAREHOUSE_DESC = 1,
59
                      TABLE_INDEX_WAREHOUSE_DESC = 1,
53
                      TABLE_INDEX_WAREHOUSE_INV = 2;
60
                      TABLE_INDEX_WAREHOUSE_INV = 2;
54
    
61
    
55
    private final String PRICE_WIDTH = "100px", VENDOR_DESC_WIDTH = "130px",
62
    private final String PRICE_WIDTH = "100px", VENDOR_DESC_WIDTH = "130px",
Line 79... Line 86...
79
    @UiField Label itemStatus;
86
    @UiField Label itemStatus;
80
    @UiField TextBox bestDealsText, bestDealsValue; 
87
    @UiField TextBox bestDealsText, bestDealsValue; 
81
    @UiField FlexTable headerAvailability, availabilityTable;
88
    @UiField FlexTable headerAvailability, availabilityTable;
82
    @UiField FlexTable headerVendorItemKey, tableVendorItemKey;
89
    @UiField FlexTable headerVendorItemKey, tableVendorItemKey;
83
    @UiField FlexTable headerVendorPrices, tableVendorPrices;
90
    @UiField FlexTable headerVendorPrices, tableVendorPrices;
-
 
91
    @UiField FlexTable headerSourcePrices, tableSourcePrices;
84
    @UiField TextBox bestSellingRank;
92
    @UiField TextBox bestSellingRank;
85
    @UiField TextBox expectedDelay;
93
    @UiField TextBox expectedDelay;
86
    @UiField TextBox preferredWarehouse;
94
    @UiField TextBox preferredWarehouse;
87
    @UiField CheckBox defaultForEntity, risky;
95
    @UiField CheckBox defaultForEntity, risky;
88
    @UiField DateBox startDate;
96
    @UiField DateBox startDate;
Line 95... Line 103...
95
    public ItemDetails() {
103
    public ItemDetails() {
96
        initWidget(uiBinder.createAndBindUi(this));
104
        initWidget(uiBinder.createAndBindUi(this));
97
        initAvailabilityHeader();
105
        initAvailabilityHeader();
98
        initVendorKeysHeader();
106
        initVendorKeysHeader();
99
        initVendorPricingHeader();
107
        initVendorPricingHeader();
-
 
108
        initSourcePricingHeader();
100
        
109
        
101
        headerAvailability.setVisible(false);
110
        headerAvailability.setVisible(false);
102
        availabilityTable.setVisible(false);
111
        availabilityTable.setVisible(false);
103
    }
112
    }
104
 
113
 
Line 141... Line 150...
141
        itemStatus.setText(item.getItemStatus());
150
        itemStatus.setText(item.getItemStatus());
142
 
151
 
143
        updateAvailabilityTable(item.getAvailability());
152
        updateAvailabilityTable(item.getAvailability());
144
        updateVendorKeysTable(item.getVendorKeysMap());
153
        updateVendorKeysTable(item.getVendorKeysMap());
145
        updateVendorPricingTable(item.getVendorPricesMap());
154
        updateVendorPricingTable(item.getVendorPricesMap());
-
 
155
        updateSourcePricingTable(item.getSourcePricesMap());
146
    }
156
    }
147
 
157
 
148
    /**
158
    /**
149
     * initialise item availability table header.
159
     * initialise item availability table header.
150
     */
160
     */
Line 270... Line 280...
270
            }
280
            }
271
        });
281
        });
272
    }
282
    }
273
    
283
    
274
    /**
284
    /**
-
 
285
     * initialises source prices table header. Creates an Add button and
-
 
286
     * adds click event listener to it to create and pop up a dialog for adding 
-
 
287
     * a prices for a new source 
-
 
288
     */
-
 
289
    private void initSourcePricingHeader(){
-
 
290
        headerSourcePrices.getColumnFormatter().setWidth(TABLE_INDEX_SOURCE_PRICING_SOURCE_ID, VENDOR_ID_WIDTH);
-
 
291
        headerSourcePrices.getColumnFormatter().setWidth(TABLE_INDEX_SOURCE_PRICING_SOURCE_DESC, VENDOR_DESC_WIDTH);
-
 
292
        headerSourcePrices.getColumnFormatter().setWidth(TABLE_INDEX_SOURCE_PRICING_MRP, PRICE_WIDTH);
-
 
293
        headerSourcePrices.getColumnFormatter().setWidth(TABLE_INDEX_SOURCE_PRICING_SELLING_PRICE, PRICE_WIDTH);
-
 
294
        headerSourcePrices.getColumnFormatter().setWidth(TABLE_INDEX_SOURCE_PRICING_BUTTON, BUTTON_WIDTH);
-
 
295
 
-
 
296
        headerSourcePrices.setText(0, TABLE_INDEX_SOURCE_PRICING_SOURCE_ID, "Source Id");
-
 
297
        headerSourcePrices.setText(0, TABLE_INDEX_SOURCE_PRICING_SOURCE_DESC, "Source");
-
 
298
        headerSourcePrices.setText(0, TABLE_INDEX_SOURCE_PRICING_MRP, "MRP");
-
 
299
        headerSourcePrices.setText(0, TABLE_INDEX_SOURCE_PRICING_SELLING_PRICE, "Selling Price");
-
 
300
        
-
 
301
        headerSourcePrices.getCellFormatter().setVisible(0, TABLE_INDEX_SOURCE_PRICING_SOURCE_ID, false);
-
 
302
        
-
 
303
        Button addButton = new Button("Add");
-
 
304
        headerSourcePrices.setWidget(0, TABLE_INDEX_SOURCE_PRICING_BUTTON, addButton);
-
 
305
        addButton.addClickHandler(new ClickHandler() {
-
 
306
            @Override
-
 
307
            public void onClick(ClickEvent event) {
-
 
308
                SourcePricesDialog sourcePricesDialog = new SourcePricesDialog();
-
 
309
                sourcePricesDialog.updateButton.setText("Add");
-
 
310
                sourcePricesDialog.setSourcePriceUpdateListener(new SourcePricesDialog.SourcePriceUpdateListener() {
-
 
311
                    @Override
-
 
312
                    public boolean onUpdate(double mrp, double sellingPrice, long sourceId) {
-
 
313
                        if(!sourceExists(sourceId)) {
-
 
314
                            Window.alert("Source already exists");
-
 
315
                            return false;
-
 
316
                        }
-
 
317
 
-
 
318
                        int row = tableSourcePrices.getRowCount();
-
 
319
                        tableSourcePrices.getColumnFormatter().setWidth(TABLE_INDEX_SOURCE_PRICING_SOURCE_ID, VENDOR_ID_WIDTH);
-
 
320
                        tableSourcePrices.getColumnFormatter().setWidth(TABLE_INDEX_SOURCE_PRICING_SOURCE_DESC, VENDOR_DESC_WIDTH);
-
 
321
                        tableSourcePrices.getColumnFormatter().setWidth(TABLE_INDEX_SOURCE_PRICING_MRP, PRICE_WIDTH);
-
 
322
                        tableSourcePrices.getColumnFormatter().setWidth(TABLE_INDEX_SOURCE_PRICING_SELLING_PRICE, PRICE_WIDTH);
-
 
323
                        
-
 
324
                        tableSourcePrices.setText(row, TABLE_INDEX_SOURCE_PRICING_SOURCE_ID, sourceId + "");
-
 
325
                        tableSourcePrices.setText(row, TABLE_INDEX_SOURCE_PRICING_SOURCE_DESC, Utils.getSourceDesc(sourceId));
-
 
326
                        tableSourcePrices.setText(row, TABLE_INDEX_SOURCE_PRICING_MRP, mrp + "");
-
 
327
                        tableSourcePrices.setText(row, TABLE_INDEX_SOURCE_PRICING_SELLING_PRICE, sellingPrice + "");
-
 
328
                        
-
 
329
                        tableSourcePrices.getCellFormatter().setVisible(row, TABLE_INDEX_SOURCE_PRICING_SOURCE_ID, false);
-
 
330
                        return true;
-
 
331
                    }
-
 
332
                });
-
 
333
                sourcePricesDialog.show();
-
 
334
            }
-
 
335
        });
-
 
336
    }
-
 
337
 
-
 
338
    /**
275
     * Clear and populate item availability table.
339
     * Clear and populate item availability table.
276
     * @param availabilityMap
340
     * @param availabilityMap
277
     */
341
     */
278
    private void updateAvailabilityTable(Map<Long, Long> availabilityMap){
342
    private void updateAvailabilityTable(Map<Long, Long> availabilityMap){
279
        availabilityTable.removeAllRows();
343
        availabilityTable.removeAllRows();
Line 376... Line 440...
376
            tableVendorPrices.getCellFormatter().setVisible(i, TABLE_INDEX_PRICING_VENDORID, false);
440
            tableVendorPrices.getCellFormatter().setVisible(i, TABLE_INDEX_PRICING_VENDORID, false);
377
            i++;
441
            i++;
378
        }
442
        }
379
    }
443
    }
380
 
444
 
-
 
445
    
-
 
446
    /**
-
 
447
     * Clear and populate vendor prices table with prices in the passed argument.
-
 
448
     * With each row in the table, an edit button is created and click event listener 
-
 
449
     * is added to it to edit that vendor prices row.
-
 
450
     * @param sourcePricingMap
-
 
451
     */
-
 
452
    private void updateSourcePricingTable(Map<Long, SourcePricings> sourcePricingMap){
-
 
453
        tableSourcePrices.removeAllRows();
-
 
454
        
-
 
455
        if(sourcePricingMap == null || sourcePricingMap.isEmpty()) {
-
 
456
            return;
-
 
457
        }
-
 
458
        tableSourcePrices.getColumnFormatter().setWidth(TABLE_INDEX_SOURCE_PRICING_SOURCE_ID, VENDOR_ID_WIDTH);
-
 
459
        tableSourcePrices.getColumnFormatter().setWidth(TABLE_INDEX_SOURCE_PRICING_SOURCE_DESC, VENDOR_DESC_WIDTH);
-
 
460
        tableSourcePrices.getColumnFormatter().setWidth(TABLE_INDEX_SOURCE_PRICING_MRP, PRICE_WIDTH);
-
 
461
        tableSourcePrices.getColumnFormatter().setWidth(TABLE_INDEX_SOURCE_PRICING_SELLING_PRICE, PRICE_WIDTH);
-
 
462
        tableSourcePrices.getColumnFormatter().setWidth(TABLE_INDEX_SOURCE_PRICING_BUTTON, BUTTON_WIDTH);
-
 
463
        
-
 
464
        int i=0;
-
 
465
        for(SourcePricings sourceDetail : sourcePricingMap.values()){
-
 
466
            tableSourcePrices.setText(i, TABLE_INDEX_SOURCE_PRICING_SOURCE_ID, sourceDetail.getSourceId() + "");
-
 
467
            tableSourcePrices.setText(i, TABLE_INDEX_SOURCE_PRICING_SOURCE_DESC, Utils.getSourceDesc(sourceDetail.getSourceId()));
-
 
468
            tableSourcePrices.setText(i, TABLE_INDEX_SOURCE_PRICING_MRP, sourceDetail.getMrp() + "");
-
 
469
            tableSourcePrices.setText(i, TABLE_INDEX_SOURCE_PRICING_SELLING_PRICE, sourceDetail.getSellingPrice() + "");
-
 
470
                        
-
 
471
            Button editButton = new Button("Edit");
-
 
472
            tableSourcePrices.setWidget(i, TABLE_INDEX_SOURCE_PRICING_BUTTON, editButton);
-
 
473
            editButton.addClickHandler(new ClickHandler() {
-
 
474
                @Override
-
 
475
                public void onClick(ClickEvent event) {
-
 
476
                    Cell cell = tableSourcePrices.getCellForEvent(event);
-
 
477
                    int row = cell.getRowIndex();
-
 
478
                    long sourceId = Long.parseLong(tableSourcePrices.getText(row, TABLE_INDEX_SOURCE_PRICING_SOURCE_ID));
-
 
479
                    editSourcePrices(sourceId, row);
-
 
480
                }
-
 
481
            });
-
 
482
            tableSourcePrices.getCellFormatter().setVisible(i, TABLE_INDEX_SOURCE_PRICING_SOURCE_ID, false);
-
 
483
            i++;
-
 
484
        }
-
 
485
    }
-
 
486
    
-
 
487
 
381
    /**
488
    /**
382
     * called on the click event of update item button in ItemActions
489
     * called on the click event of update item button in ItemActions
383
     */
490
     */
384
    void updateItem() {
491
    void updateItem() {
385
        if(item == null) {
492
        if(item == null) {
Line 585... Line 692...
585
            vMapping.setVendorId(Long.parseLong(tableVendorItemKey.getText(row, TABLE_INDEX_MAPPING_VENDORID)));
692
            vMapping.setVendorId(Long.parseLong(tableVendorItemKey.getText(row, TABLE_INDEX_MAPPING_VENDORID)));
586
            vendorMappings.put(vMapping.getVendorId() + Item.KEY_SEPARATOR + tableVendorItemKey.getText(row, TABLE_INDEX_MAPPING_ITEM_KEY_OLD), vMapping);
693
            vendorMappings.put(vMapping.getVendorId() + Item.KEY_SEPARATOR + tableVendorItemKey.getText(row, TABLE_INDEX_MAPPING_ITEM_KEY_OLD), vMapping);
587
        }
694
        }
588
        newItem.setVendorKeysMap(vendorMappings);
695
        newItem.setVendorKeysMap(vendorMappings);
589
        
696
        
-
 
697
        /*Create an instance of SourcePricings for each row in source pricing table. Set the source prices to the instance.
-
 
698
        Add the instance to map and set the map to the item instance created above.*/
-
 
699
		  Map<Long, SourcePricings> sourcePrices = new HashMap<Long, SourcePricings>();
-
 
700
		  SourcePricings s;
-
 
701
		  for(int row = 0; row < tableSourcePrices.getRowCount(); row++) {
-
 
702
		      s = new SourcePricings();
-
 
703
		      s.setMrp(Double.parseDouble(tableSourcePrices.getText(row, TABLE_INDEX_SOURCE_PRICING_MRP)));
-
 
704
		      s.setSellingPrice(Double.parseDouble(tableSourcePrices.getText(row, TABLE_INDEX_SOURCE_PRICING_SELLING_PRICE)));
-
 
705
		      s.setSourceId(Long.parseLong(tableSourcePrices.getText(row, TABLE_INDEX_SOURCE_PRICING_SOURCE_ID)));
-
 
706
		      sourcePrices.put(s.getSourceId(), s);
-
 
707
		  }
-
 
708
		newItem.setSourcePricesMap(sourcePrices);
-
 
709
		  
590
        newItem.setContentCategoryId(item.getContentCategoryId());
710
        newItem.setContentCategoryId(item.getContentCategoryId());
591
        newItem.setFeatureId(item.getFeatureId());
711
        newItem.setFeatureId(item.getFeatureId());
592
        newItem.setFeatureDescription(item.getFeatureDescription());
712
        newItem.setFeatureDescription(item.getFeatureDescription());
593
        newItem.setAddedOn(item.getAddedOn());
713
        newItem.setAddedOn(item.getAddedOn());
594
        newItem.setRetireDate(item.getRetireDate());
714
        newItem.setRetireDate(item.getRetireDate());
Line 627... Line 747...
627
        pricesDialog.show();
747
        pricesDialog.show();
628
    }
748
    }
629
    
749
    
630
    /**
750
    /**
631
     * This method is called when Edit button is clicked corresponding to a row in 
751
     * This method is called when Edit button is clicked corresponding to a row in 
-
 
752
     * vendor prices table. It will pop up a form to edit the vendor prices.
-
 
753
     * @param vendorId
-
 
754
     * @param row
-
 
755
     */
-
 
756
    private void editSourcePrices(final long sourceId, final int row) {
-
 
757
        String mrp = tableSourcePrices.getText(row, TABLE_INDEX_SOURCE_PRICING_MRP);
-
 
758
        String sellingPrice = tableSourcePrices.getText(row, TABLE_INDEX_SOURCE_PRICING_SELLING_PRICE);
-
 
759
        SourcePricesDialog pricesDialog = new SourcePricesDialog(mrp, sellingPrice);
-
 
760
        pricesDialog.updateButton.setText("Update");
-
 
761
        pricesDialog.setSourcePriceUpdateListener(new SourcePricesDialog.SourcePriceUpdateListener() {
-
 
762
            @Override
-
 
763
            public boolean onUpdate(double mrp, double sellingPrice, long sourceId) {
-
 
764
                if(!validateSourcePrices(mrp, sellingPrice)) {
-
 
765
                    return false;
-
 
766
                }
-
 
767
                tableSourcePrices.setText(row, TABLE_INDEX_SOURCE_PRICING_MRP, mrp + "");
-
 
768
                tableSourcePrices.setText(row, TABLE_INDEX_SOURCE_PRICING_SELLING_PRICE, sellingPrice + "");
-
 
769
                return true;
-
 
770
            }
-
 
771
        });
-
 
772
        pricesDialog.show();
-
 
773
    }
-
 
774
    
-
 
775
 
-
 
776
    /**
-
 
777
     * This method is called when Edit button is clicked corresponding to a row in 
632
     * vendor item key table. It will pop up a form to edit the item key.
778
     * vendor item key table. It will pop up a form to edit the item key.
633
     * @param vendorId
779
     * @param vendorId
634
     * @param row
780
     * @param row
635
     */
781
     */
636
    private void editVendorKey(final long vendorId, final int row) {
782
    private void editVendorKey(final long vendorId, final int row) {
Line 733... Line 879...
733
            if(vendorPricings.getTransferPrice() != Double.parseDouble(tableVendorPrices.getText(row, TABLE_INDEX_PRICING_TP))) {
879
            if(vendorPricings.getTransferPrice() != Double.parseDouble(tableVendorPrices.getText(row, TABLE_INDEX_PRICING_TP))) {
734
                sb.append("\n-Transfer Price (Vendor:" + vendorId + ")");
880
                sb.append("\n-Transfer Price (Vendor:" + vendorId + ")");
735
            }
881
            }
736
        }
882
        }
737
        
883
        
-
 
884
        SourcePricings sourcePricings;
-
 
885
        long sourceId;
-
 
886
        for(int row = 0; row < tableSourcePrices.getRowCount(); row++) {
-
 
887
            sourceId = Long.parseLong(tableSourcePrices.getText(row, TABLE_INDEX_SOURCE_PRICING_SOURCE_ID));
-
 
888
            sourcePricings = item.getSourcePricesMap().get(sourceId);
-
 
889
            if(sourcePricings == null) {
-
 
890
                sb.append("\n-Source Prices (Source:" + sourceId + ")");
-
 
891
                continue;
-
 
892
            }
-
 
893
            if(sourcePricings.getMrp() != Double.parseDouble(tableSourcePrices.getText(row, TABLE_INDEX_SOURCE_PRICING_MRP))) {
-
 
894
                sb.append("\n-MRP (Source:" + sourceId + ")");
-
 
895
            }
-
 
896
            if(sourcePricings.getSellingPrice() != Double.parseDouble(tableSourcePrices.getText(row, TABLE_INDEX_SOURCE_PRICING_SELLING_PRICE))) {
-
 
897
                sb.append("\n-Selling Price (Source:" + sourceId + ")");
-
 
898
            }
-
 
899
        }
-
 
900
        
738
        VendorItemMapping mapping;
901
        VendorItemMapping mapping;
739
        String old_key, new_key;
902
        String old_key, new_key;
740
        for(int row = 0; row < tableVendorItemKey.getRowCount(); row++) {
903
        for(int row = 0; row < tableVendorItemKey.getRowCount(); row++) {
741
            vendorId = Long.parseLong(tableVendorItemKey.getText(row, TABLE_INDEX_MAPPING_VENDORID));
904
            vendorId = Long.parseLong(tableVendorItemKey.getText(row, TABLE_INDEX_MAPPING_VENDORID));
742
            old_key = tableVendorItemKey.getText(row, TABLE_INDEX_MAPPING_ITEM_KEY_OLD);
905
            old_key = tableVendorItemKey.getText(row, TABLE_INDEX_MAPPING_ITEM_KEY_OLD);
Line 778... Line 941...
778
            Window.alert("Transfer Price cannot be more than MOP.");
941
            Window.alert("Transfer Price cannot be more than MOP.");
779
            return false;
942
            return false;
780
        }
943
        }
781
        return true;
944
        return true;
782
    }
945
    }
-
 
946
 
-
 
947
    private boolean validateSourcePrices(double mrp, double sellingPrice) {
-
 
948
        if(sellingPrice > mrp) {
-
 
949
            Window.alert("Selling Price cannot be more than MRP.");
-
 
950
            return false;
-
 
951
        }
-
 
952
        return true;
-
 
953
    }
-
 
954
 
783
    
955
    
784
    public long getItemId() {
956
    public long getItemId() {
785
        return item == null ? 0 : item.getId();
957
        return item == null ? 0 : item.getId();
786
    }
958
    }
787
    
959
    
Line 803... Line 975...
803
                return false;
975
                return false;
804
            }
976
            }
805
        }
977
        }
806
        return true;
978
        return true;
807
    }
979
    }
-
 
980
    
-
 
981
    /**
-
 
982
     * This method is used while adding source prices to ensure that there is only one row in the table for a source.
-
 
983
     * @param sourceId
-
 
984
     * @return true if parameter vendor Id is already added to source prices table.
-
 
985
     *      <br>else false
-
 
986
     */
-
 
987
    private boolean sourceExists(long sourceId) {
-
 
988
        long id;
-
 
989
        for(int i = 0; i < tableSourcePrices.getRowCount(); i++) {
-
 
990
            id = Long.parseLong(tableSourcePrices.getText(i, TABLE_INDEX_SOURCE_PRICING_SOURCE_ID));
-
 
991
            if(sourceId == id) {
-
 
992
                return false;
-
 
993
            }
-
 
994
        }
-
 
995
        return true;
-
 
996
    }
808
    
997
    
809
    /**
998
    /**
810
     * This method is used to check if any of the string item attributes is changed by the user.
999
     * This method is used to check if any of the string item attributes is changed by the user.
811
     * @param o1
1000
     * @param o1
812
     * @param o2
1001
     * @param o2