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;
                        }
                    }
                }
            }
        }
Example #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="UPSEDestinationColumnBase"/> class.
        /// </summary>
        /// <param name="fieldConfig">The field configuration.</param>
        /// <param name="column">The column.</param>
        public UPSEDestinationColumnBase(UPConfigFieldControlField fieldConfig, UPSEDestinationColumnBase column)
            : base(fieldConfig, column)
        {
            this.Readonly         = column.Readonly;
            this.DontSave         = column.DontSave;
            this.DontCacheOffline = column.DontCacheOffline;
            this.Empty            = column.Empty;
            string v = fieldConfig.Attributes.ExtendedOptionForKey("initialFocus");

            if (v == "ifEmpty")
            {
                this.InitialFocus = InitialFocusMode.IfEmpty;
            }
            else
            {
                this.InitialFocus = fieldConfig.Attributes.ExtendedOptionIsSet("initialFocus") ? InitialFocusMode.Yes : column.InitialFocus;
            }

            this.ChangeAction      = fieldConfig.Attributes.ExtendedOptionForKey("onchange") ?? column.ChangeAction;
            this.ParentColumnIndex = column.ParentColumnIndex;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="UPSEDestinationColumn"/> class.
 /// </summary>
 /// <param name="fieldConfig">The field configuration.</param>
 /// <param name="column">The column.</param>
 public UPSEDestinationColumn(UPConfigFieldControlField fieldConfig, UPSEDestinationColumnBase column)
     : base(fieldConfig, column)
 {
 }
 /// <summary>
 /// Determines whether [is quota column] [the specified destination column].
 /// </summary>
 /// <param name="destinationColumn">The destination column.</param>
 /// <returns>
 ///   <c>true</c> if [is quota column] [the specified destination column]; otherwise, <c>false</c>.
 /// </returns>
 public bool IsQuotaColumn(UPSEDestinationColumnBase destinationColumn)
 {
     return(this.IsQuotaColumnIndex(destinationColumn.Index));
 }