Skip to content
This repository has been archived by the owner on May 2, 2023. It is now read-only.

Commit

Permalink
Fix array index error due to poor structure.
Browse files Browse the repository at this point in the history
  • Loading branch information
James Christie committed Nov 13, 2012
1 parent f96d218 commit a2032d7
Showing 1 changed file with 16 additions and 16 deletions.
32 changes: 16 additions & 16 deletions lib/restlets/rest.js
Original file line number Diff line number Diff line change
Expand Up @@ -292,31 +292,31 @@ function transformRecords(request) {
for(var field in fieldChanges) { newRecord.setFieldValue(field, fieldChanges[field]); }

for(var sublistName in sublistChanges) {
sublist = sublistChanges[sublistName];
matchField = sublistChanges[sublistName]['match_field'];
sublistItems = sublistChanges[sublistName]['line_items'];
deletionCount = 0;

// Alter line item values to match hash values, remove items that are not referenced
for(var index = 1; index < (newRecord.getLineItemCount(sublistName) + 1); index++) {
found = false;
deletionCount = 0;
lineItemsToRemove = [];
for(var lineItemIndex = 1; lineItemIndex < (newRecord.getLineItemCount(sublistName) + 1); lineItemIndex++) {
found = false;

for(sublistItemDataIndex in sublist) {
sublistData = sublist[sublistItemDataIndex];
for(var sublistItemDataIndex = 0; sublistItemDataIndex < sublistItems.length; sublistItemDataIndex++) {
sublistItemData = sublistItems[sublistItemDataIndex];

if(newRecord.getLineItemValue(sublistName, 'item', (index - deletionCount)) == sublistData['item']) {
if(newRecord.getLineItemValue(sublistName, matchField, (lineItemIndex - deletionCount)) == sublistItemData[matchField]) {
found = true;

for(var sublistItemField in sublistData) {
if(sublistItemField == 'item') { continue; }
newRecord.setLineItemValue(sublistName, sublistItemField, (index - deletionCount),
sublistData[sublistItemField]);
for(var sublistItemField in sublistItemData) {
if(sublistItemField == matchField) { continue; }
newRecord.setLineItemValue(sublistName, sublistItemField, (lineItemIndex - deletionCount),
sublistItemData[sublistItemField]);
}
}
}

if(!found) {
newRecord.removeLineItem(sublistName, (index - deletionCount));
deletionCount++;
}
if(!found) {
newRecord.removeLineItem(sublistName, (lineItemIndex - deletionCount));
deletionCount++;
}
}
}
Expand Down

0 comments on commit a2032d7

Please sign in to comment.