private void ProcessUnitPriceColumn( UPSEColumn unitPriceColumn, UPSEColumn pricingUnitPriceColumn, UPSEColumn disablePricingColumn, ref double price) { if (unitPriceColumn != null || pricingUnitPriceColumn != null) { UPSERowValue unitPriceRowValue = null; UPSERowValue pricingUnitPriceRowValue = null; UPSERowValue readPrice = null; if (unitPriceColumn != null) { readPrice = RowValues[unitPriceColumn.Index]; unitPriceRowValue = readPrice; } if (unitPriceRowValue != null && disablePricingColumn != null) { if (BoolValueFromColumn((UPSEDestinationColumn)disablePricingColumn)) { unitPriceRowValue = null; } } if (pricingUnitPriceColumn != null) { pricingUnitPriceRowValue = RowValues[pricingUnitPriceColumn.Index]; if (readPrice == null) { readPrice = pricingUnitPriceRowValue; } } if (price > 0.0000001 || price < -0.0000001) { if (pricingUnitPriceRowValue != null) { pricingUnitPriceRowValue.Value = price; } if (unitPriceRowValue != null) { unitPriceRowValue.Value = price; } else if (readPrice != null && (readPrice.Value is float || readPrice.Value is string)) { price = GetDouble(readPrice.Value); } } else if (readPrice.Value is float || readPrice.Value is string) { price = GetDouble(readPrice.Value); } } }
private void ProcessSerialEntryColumns(UPCRMRecord rootRecord) { for (var columnIndex = 0; columnIndex < this.count; columnIndex++) { this.column = this.SerialEntry.Columns[columnIndex]; this.destinationColumn = this.column as UPSEDestinationColumnBase; if (this.destinationColumn != null) { if (this.destinationColumn.DontCacheOffline && this.destinationColumn.DontSave) { continue; } this.rowValue = this.RowValues[columnIndex]; var originalVal = this.destinationColumn.StringValueFromObject(this.rowValue.OriginalValue); var stringValue = this.destinationColumn.StringValueFromObject(this.rowValue.Value); var changedValue = this.column.IsValueDifferentThan(stringValue, originalVal); if (!changedValue && !this.rowValue.SaveUnchanged) { continue; } if (!changedValue) { originalVal = null; } if (this.column.ColumnFrom == UPSEColumnFrom.DestChild) { this.ProcessUpseColumnFromDestChild(rootRecord, changedValue, stringValue, originalVal); } else { if (this.destinationColumn.DontSave) { this.destinationRootRecord.NewValueFromValueFieldIdOnlyOffline( stringValue, originalVal, this.column.FieldId, true); } else { this.destinationRootRecord.NewValueFromValueFieldId(stringValue, originalVal, this.column.FieldId); } if (changedValue) { this.destinationRootRecord.HasValues = true; } } } } }