WM-Synergy SBO - Release Notes

WM-Synergy SBO - Release Notes

v1100.1003 - 06/11/2025 
  1. Fix Issue in ShipperLine 
    Customer Order for Part id 500pcs, WorkOrder to make part id is for 1000pcs.
    Linked CO to WO for Supply links for the 500 pcs. 
    Ship the 500 pcs from sbo objects,
    expectations are (Visual ERP) customer order for 500pcsis closed while work order stays Open.  (sbo object is setting work order to 'C')
    Sltn:      corrections made to:  SHIPPER_LINE.BaseDomainObject_AfterDatabaseInsert()
v1100.1002 - 03/6/2025 
  1.  Fix issue in Payable module, using Averaging accounting method, the Credit Voucher was not applying the credit to the correct account(s).
  2. Update supporting nuget package (.dll's)  Oracle.ManagedDataAccess is now at 21.17.0 the last update available for Framework 4.6
v1100.1001 - 03/6/2025 
  1.  GJ, GJ_CURR did not match prior v10.2056 release
v1100.1000 .Net Standard 2.0  - 11/21/2024
      <see release notes for v1100.1000>
Compatible:
      .NET and .NET Core 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0
      .NET Framework  1       4.6.1 2, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
      Mono                   5.4, 6.4
      Xamarin.iOS             10.14, 12.16
      Xamarin.Mac             3.8, 5.16
      Xamarin.Android     8.0, 10.0
      Universal Windows Platform 10.0.16299, TBD
      Unity                         2018.1
v1100.1000 - 11/21/2024 Visual ERP 11 Support Initial Release
  1. Support for Single Site Visual ERP is no longer supported.
  2. Oracle upgrade to use the Oracle.ManagedDataAccess library replacing Microsoft.System.Data.Oracle library
    1. Microsoft support end of life for System.Data.Oracle
  3. Upgrade  IDbCommand.Command  calls replaced with IDbCommand.CreateNewCommand
    1. Microsoft support end of life for IDbCommand.Command

v1000.1245 - PAYABLE_LINE - Correction to last commit - these material cost updates should only occur in Actual costing (not standard)
v1000.1245 - PAYABLE_LINE - Fix issue with negative Material Costs being generated on the INVENTORY_TRANS record associated with a Receiver Line's transaction.
v1000.1244 - INVENTORY_TRANS - delete associated INV_TRANS_CURR record(s) when deleting Inventory Transactions
v1000.1243 - MARKET_PRICE - Add BeforeDatabaseInsertUpdate logic
v1000.1242 - BaseClasses: Fix Oracle not liking semicolons (;) in CommandText
"v1000.1241
- BaseClasses: Create new Dictionary<string, ObjectVersionRevision> on initialization; Update LoadTableObjectSchema() to be Server\Database aware; Remove eating ArgumentException
- SchemaDefinitionLoader: Remove SqlBase & Other from EngineTypeEnum; Update interface iTableObjectSchema from public to internal; General Clean Up"
v1000.1240 - PURC_ORDER_LINE - only get Unit Price from quote when the _PART object is not null - will cause null reference errors when a service comes through without default pricing
"v1000.1239 - Add validation for LINE_STATUS in Cust Order Line - (A & C for 908 and below, A, R, F, C, X, H for V10)
           - Validate LINE_STATUS before shipping (Visual will not ship Firmed, Cancelled, or On Hold lines)
           - Include (Firmed, Released, and On Hold) checks before closing a customer order after shipment is created"
"v1000.1238 -

PURC_ORDER_LINE - minor code refactor - SERVICE_ID UM takes precedence over PART_ID UM if both are present

SERVICE_DISP_LINE - Remove VNumberRounding logic and UOM Conversion - Visual does not do this for dispatches"
v1000.1237 - PAYABLE_LINE: Fix GetParameter Lookup; *_DIST: Add Validation, Convert SortedList to Dictionary & Clean Up
LABOR_TICKET: Update Properties to use proper setters for Employee, Indirect, Operation
v1000.1236 - PAYABLE_LINE: Add 2 Check Exceptions: Receiver Line already exists on Voucher ID; QTY must match Receiver Line's Received Qty, Clean Up
"CUSTOMER - Only Create/Update Primary Contact if there's some actual contact data to avoid an ""empty"" CONTACT when creating a new CUSTOMER.
WORK_ORDER, OPERATION, REQUIREMENT - enhanced exception messages via the KeyInfo property, includes all primary key info for easier debugging of large work order trees."
v1000.1235 - CUSTOMER_ORDER - Do not override CONTACT details on header if there's a valid Contact set (this prevents null properties that should remain null from being overridden with what's in the CustomerSiteView Contact details)
"No assembly number change

PAYABLE_LINE - Place DataTables within using clauses so they are disposed of when done (when calculating Unit Price and Landed/Non Landed costs)
             - Clean up some error messages to include invalid data when they are not found in the Database"
"v1000.1234

SERVICE_DISPATCHED - NextTransactionID method fix (copy / paste from LABOR_TICKET without changing the table name)"
"v1000.1233 - 

SERVICE_DISPATCH / SERVICE_DISP_LINE - Add LoadBy to fix loading and saving of Lines in the header

SERVICE_DISPATCHED - Add BeforeDatabaseInsert methods, and properties that link to Purchase Order Line and Service Dispatch Line and Operation"
"No version change - 

BOL, LABOR_TICKET, PURCHASE_ORDER, SHIPPER_LINE - Add invalid property to ""does not exist"" exceptions"
v1000.1232 - CUST_ORDER_LINE - Default Warehouse ID to the Primary Warehouse ID on the PartSiteView if it's not set
"v1000.1231 - RECEIVABLE_LINE - Validate AMOUNT has a value before saving - Visual doesn't stop this in the UI, but will throw a ""cannot insert null"" database error

RECEIVABLE - When adding values up to save to TOTAL_AMOUNT, use the ValueDefaultZero() methods on nullable DUTY_AMOUNT, and VAT_AMOUNT properties"
v1000.1230 - SHIPPER - BeforeDatabaseDelete - Delete entries from the INV_TRANS_DIST table (where TRANSACTION_ID of inventory transaction = OUT_TRANS_ID of INV_TRANS_DIST
v1000.1229 - INVENTORY_TRANS - When creating an inventory transfer - do not validate status of Location (Hold, Unavailable) - Visual allows this.
v1000.1228 - WORK_ORDER: ChangeStatusOfSubordinateObjects propagate save flag through recursion
v1000.1227 - WORK_ORDER - ChangeType: Only Save CoProducts when SUB_ID is "0"
SHIPPER.ShipAll() - //Shipment.Quantity is in User Units not Stocked Units
v1000.1226 - OPERATION: Do NOT Update RUN_HRS (Controlled by Triggers)
"v1000.1225 - 

Add SERVICE_SITE_VIEW (works like Part Site View)

ACCOUNTING_ENTITY - Refactor LoadBy logic to check ExecuteScalar for DBNull - this will prevent seeing Null Reference error(s) when an Invalid Site ID is passed into it.

DEMAND_SUPPLY_LINK - Add LoadBy for Purchase Order Lines.  Include demand sequence number to Purc Order Line / Operation BuildWith method

PURC_ORDER_LINE - Add SERVICE_SITE_VIEW logic for Services 
                - Add SupplyLinks list 
                - Add validation for Service ID
                - Set Service price defaults if none specified
                - Delete child UDFs and Supply Links
                - Save SupplyLinks After Insert/Update

SERVICE - Add Vendor data

SERVICE_DISP_LINE - Add PurchaseOrderLine & ServiceDispatch objects
                  - Add before save validations and defaults

SERVICE_DISPATCH - Add Site, Purchase Order, and Service Disp Lines objects
                 - Add before save validations and defaults
                 - Add after save Line saves

SERVICE_SITE - Add Vendor, Site, and SERVICE_SITE_VIEW objects"
"v1000.1224 - PAYABLE - Validate PAYB_GL_ACCOUNT_ID and SITE_ID before save
           - PAYABLE_DIST - Validate SITE_ID, AMOUNT, AMOUNT_TYPE, GL_ACCOUNT_ID, CURRENCY_ID before save"
v1000.1223 - CUST_PRICE_EFFECT - Fix issues with GetPrice method - needed to add upper limit range - the older code always returned the first value that was less than QTY_BREAK_X
v1000.1222 - RECEIVABLE - Fix boolean logic when validating TYPE
v1000.1221 - PAYABLE_LINE - Fix issue with RECEIVER_LINE Unit Price nulling out for Payable credits / returns
"v1000.1220
- DOCUMENT, DOCUMENT_REFERENCE, DOCUMENT_REF_WO: Handle SITE_ID properly
- SITE: Add public const string TENANT = ""** Tenant **"""
v1000.1219 - WORK_ORDER: Add public static string GetSTATUS(WorkOrderStatusEnum woStatus)
"v1000.1218
- CUSTOMER_ORDER: Allow Can Enter Freeform for TERRITORY
- QUOTE: Allow Can Enter Freeform for TERRITORY, FREE_ON_BOARD & SHIP_VIA"
CUSTOMER_ORDER & QUOTE: Add UseNoContact option to prevent auto loading Primary Contact; CONTACT: Remove old CustomList & Clean Up
WORK_ORDER: Always set POSTING_CANDIDATE = "N" if Engineering or Quote Master or not Main Leg
"v1000.1217

- SHIPPER_LINE - fix ACT_MATERIAL and ACT_LABOR cost issues when creating Inventory Transaction within PrepareNewLine -"
"v1000.1216
- CUSTOMER_ORDER: Fix Null Reference exception for ShipTo
- CUST_ADDRESS: Clean Up & Fix ADDRESS_INFO not sending SHIPTO_ID when from CUSTOMER"
v1000.1215 - LABOR_TICKET: Add public static bool properties BackflushClosedOp & BackflushClosedWo to override base Visual logic; Add public LaborBackflush() *Available for Internal Use Only for use in Customs*
"v1000.1214
- CUSTOMER_ORDER: Allow Can Enter Freeform for FREE_ON_BOARD & SHIP_VIA
- CUSTOMER: Revert FREE_ON_BOARD Logic (Can NOT Enter Freeform)"
v1000.1213 - CUSTOMER: Allow Can Enter Freeform for FREE_ON_BOARD & SHIP_VIA
"v1000.1212 - 

Run standard query to update Material Cost on an Inventory Trans rather than using Business Objects.  This corrects issue with updating inventory transactions during closed period after PAYABLE save when grabbing all INV_TRANS_DIST out transactions"
"v1000.1211 - 

PAYABLE_LINE - When Actual Costing, use direct queries to update INVENTORY_TRANS's ACT_MATERIAL_COST.  This corrects issue of trying to update costs on an Inventory Transaction that's in a closed period."
v1000.1210 - WORK_ORDER: Resolve Null Exceptions when calling Recalc before Save
"PURCHASE_ORDER - Validate VENDOR_ID before save

PAYABLE_LINE - remove unused StringBuilder variable"
INVENTORY_TRANS - Site.PREVENT_NEGATIVE is a nullable field in Database - check this has a value before comparing to "Y"
v1000.1209 - OPERATION - when OVERRIDE_QTY is 'N', don't automatically calculate start and end qty unless those fields are null.  See desk ticket #16992 for the genesis of this change
v1000.1208 - Revision bump for tag and release
PAYABLE - Fix logic around getting prepayments (flaw when there's more than 1 line)
PAYABLE_LINE - Fix Exchange Rate issue when calculating Costs on Inventory Trans after Save
v1000.1207 - WORK_ORDER: AddDemandLink() return added DEMAND_SUPPLY_LINK
v1000.1206 - Assembly bump for patch release
PAYABLE_LINE - Code clean up of queries for easier readability (did this when trying to diagnose an issue for Easy System / Apex)
"INVENTORY_TRANS - use nullable check on PartSiteView when checking ALLOW_WO

SHIPPER_LINE - Refactor parts of PrepareNewLine method.  Demand Supply Links and Inventory Transactions are not exclusive to lines with just Part IDs.  Also, even if it's a Service Charge, since we're not saving the inventory trans here, the AfterDatabaseInsert will not save the Inventory Transaction if it's a Service Charge"
INVENTORY_TRANS - Display TRANSACTION_DATE for Accounting Period Exceptions; Display Qtys for Insufficient quantity issued to return quantity Exception
v1000.1205 - BaseClasses: Resolve Save System.FormatException: Input string was not in a correct format; Clean Up: Remove Unused objects for IDataErrorInfo & Remove old commented out Security / IDB Reflection
"WORK_ORDER ResetCosts - Code Review
- Check r.PartSiteView Property != null (instead of just !string.IsNullOrWhiteSpace(r.PART_ID))
- Use AccountingSettings with Enums (instead of costingMethod & costingInterlevel directly) *Put Back*
- Remove Reset r.UNIT_BURDEN_COST to r.PartSiteView.UNIT_BURDEN_COST when KeepSeperateCosts *Put Back*
- Optimize: Do NOT Calc KeepSeperateCosts when really FoldToMaterialCost *Put Back*"
"REQUIREMENT - 
1.  Requirements can have null PART_ID.  There's an issue with PartSiteView throwing null reference error(s) during some of the checks.  Add ? to PartSiteView object when checking PartSiteView UNIV_PLAN_MATERIAL 

2.  You can use obsolete parts when saving a Requirement so long as the status of that Requirement is not Firmed, Released, or Unreleased."
1000.1204 - Modified ResetCosts - Skip when o.PROTECT_COST == "Y" (not != "Y")
1000.1203 - Added test to ResetCosts to make sure there is a part id on the requirement before processing.
"Added TODOs: Need some cleanup when passing a Macro Server URL - 

--Use Case Example: Test with Missing XML Credential File 
   System.ArgumentNullException: Value cannot be null."
v1000.1202 - LABOR_TICKET: Use proper BURDEN rates when RESOURCE_ID inherited from Operation (not directly set)
v1000.1201 - Common Preferences: Refactor to use SBO VE.PREFERENCES (Resolve IS_GLOBAL & IS_ACTIVE errors in Visual 8.0.0)
WORK_ORDER - Tickle the SPECS fields in RecursiveLoad so data is loaded into it - this helps the CreateWOFromEngineeringMaster method so specs are copied as well
"v1000.1200 (Major Refactor)
- GuptaHelper: VNumberRound, Round & Ceiling (Resolve Various Rounding / Ceiling Issues)
- INVENTORY_TRANS, TRACE_INV_TRANS, TRACE, REQUIREMENT: Add Dimensional Inventory Support & Streamline UpdateTraceQty()"
"PAYABLE - Correct issue when creating entries in FIN_DIST_DETAIL entries (should be done right after saving PAYABLE_DIST entry to keep track of SOURCE_ENTRY_NO) - this includes removing the unneeded finDistDetail class, and calling Line Number / FinDistDetail in CreateDistribution method
        - Fix VAT_RCV_GL_ACCT_ID being created twice (once normally, and then again if there's a VAT_IE_AMT)
        - Change #MultiSite to #!SingleSite and use #else where appropriate


Revision bump for patch release"
v1000.1118 - CUST_ORDER_LINE: Resolve TOTAL_AMT_ORDERED can be NULL (Default to 0) on Insert & Clean Up Do NOT Update Fields
VAT - Fix issue with LoadCurrentEffective LoadBy (need to append an actual where clause before adding Order By)
WORK_ORDER - include CoProducts when running ChangeType static method (corrects issue with CoProducts not being copied/saved when creating Work Order from Engineering Master)
CO_PRODUCT - Visual allows 0 and 100 in x_COST_PERCENT fields.  Change validation logic to include 0 and 100 as valid
"GuptaHelper Fixes
- SalNumberTruncate: Replace with Dave G version that properly handle negatives
- VNumberRound: Replace with optimized Patrick G version that properly handle negatives"
Remove Old Comment Code to Review Visual Rounding usage easier
Revert assembly back to 1000.1117
"PAYABLE - Remove ""var"" and replace with actual objects
        - use VAT_AMOUNT.ValueDefaultZero since VAT_AMOUNT can be null in some cases

PAYABLE_LINE - null / 0 out VAT Amount when Vendor is VAT_EXEMPT.  Visual will hide all VAT fields in this situation and not allow them to be set
             - some VAT fields are set to 0 or null depending on if VAT is enabled or not
             
PAYB_LINE_CURR && PAYABLE_CURR - use VAT_AMOUNT.ValueDefaultZero since VAT_AMOUNT can be null in some cases

Revision bump for patch release"
"LOCATION, WAREHOUSE, PART_WAREHOUSE, PART_LOCATION: Add Properties & Validation
* PART_LOCATION: Fix Incorrect Validation of Location"
WORK_ORDER: Code Review / Refactor ResetCosts with Rick F
Extensions ValueDefaultZero & ValueDefaultOne Refactor with AggressiveInlining
"v1000.1117
- AccountingSettings: Cleanup
- WORK_ORDER: 
-- ChangeStatusOfSubordinateObjects: Updated to turn off Save
-- Recalc Logic: Update to not Save Co Products when parent updateDatabase is false
-- ResetCosts: Refactor & Added TODO - RLF: Code Review"
v1000.1116 Revision bump for patch release
"WORK_ORDER - Add CoProducts property using the LoadBy method in CO_PRODUCT 
           - Use this property to Save CoProducts if list is populated as well as in the RecalcLeg method"
"BaseClasses - Update DataRowState _DataElementState from protected to internal; Remove old internal void ChangeState methods
REQUIREMENT - Incorporate LEG Update Logic in BeforeDatabaseInsertUpdate()
CO_PRODUCT - Add Constructor from WORK_ORDER, More Validation Logic & Properties
WORK_ORDER & CO_PRODUCT - Recalc CO_PRODUCT.DESIRED_QTY when CO_PRODUCT.QTY_IS_RATIO
LABOR_TICKET - Enhance Invalid Employee & Site for MultiSite"
v1000.1115 Added ResetCosts method.
"Added TODO Comment for the next person making a WO Change 

"v1000.1114
Include VAT Book Code default value from Vendor (based on VAT_BOOK_CODE_I for Invoices and VAT_BOOK_CODE_M for Memos

- Minor fix to Prepayment code 

Revision bump for patch release"
"v1000.1113
PAYABLE_LINE - Only fall into updating material costs on INV_TRANS_DIST table when QTY has value (this table is empty when QTY is not filled in)

PAYABLE - Only create prepay invoice lines that aren't $0

Revision bump to 1000.1113 for tag and release"
v1000.1112 - CUSTOMER_ORDER & CUST_ORDER_LINE: Add/Update Do Not Updates; Move Set CUSTOMER_ORDER.TOTAL_AMT_ORDERED to CUST_ORDER_LINE AfterDatabaseInsert Only (Update & Delete Triggers handle other updates)
Change version back to v1000.1111 (1111 tag doesn't exist yet)
"PAYABLE - Add logic to apply prepayments 

Common - Added Preferencs logic to get the right Profile String based on User, Entry, and Section.  This is code from Infor source


Revision bump for patch release"
"This was not compiled, but added to source.  - include in next release
Modified SQL for Index lookup - Performance increase

Reference ticket 11482

""With a large Operation table such as ours (over 8 million rows), this query takes around 2 minutes to complete, because there is no matching index on the Operation table.  By adding “AND o.WORKORDER_TYPE = 'W'” to the query, it hits the PK_OPERATION index, cutting down run time to ~100 ms."""
WORK_ORDER - Remove the "BITS" null check / set in the RecursiveLoad method.  This was causing the parent objects RowState to change from Unchanged to Modified
"v1000.1110
- WORK_ORDER: Update for PartSiteView & Refactor Recalc with updateDatabase option"
TRACE_PROFILE - Set Deprecated COLOCATE_OWNERS to N (Resolve Oracle Save Error ORA-01400: cannot insert NULL)
"SHIPPER, SHIPPER_LINE_DEL - AfterDatabaseDelete - properly update the CUST_LINE_DEL table's ACTUAL_SHIP_DATE, SHIP_QTY, and USER_SHIP_QTY values

SHIPPER - Re-open customer order (set order status = 'R') when Packlist is deleted

SHIPPER_LINE - Do not create Inventory Transaction on 0 quantity shipper line(s)

Revision bump for patch release"
Update LABOR_TICKET.LaborBackflush from Programming Code Review Meeting
v1000.1108 - TRACE_PROFILE: Set NUMBERING_ID to NULL if Empty or Whitespace; Set Comments & Labels to NULL if Empty
v1000.1107 - Fully implement TRACE_PROFILE & TRACE_NUMBERING
CUST_ADDRESS - Re-Add LoadByCustomerShipToID(CUSTOMER customer, string shipToID) for DERP
"v1000.1106
- Add CUSTOMER_SITE_VIEW & Refactor for usage with additional Properties for Validation
- Add ALLOCATED_QTY & FULFILLED_QTY to DNUFields; Updated via DEMAND_SUPPLY_LINK Triggers"
Refactor IBODSyncObject & Set _DataElementState = DataRowState.Unchanged directly after SQL Executed
....typo
Added BOD Configuration Sheet
"vV1000.1105 - BOD Support

7.0 compatibility does not exist - IF / ELSE"
"V1000.1105 - BOD Support

Added Generic Before Save / After Save event handlers on the base Object
--this is called before and after save, regardless of the RowState

iBODSyncObject - Implementation for TOP level BOD Document

Added BOD implementation for both Quote & Customer Order"
"LABOR_TICKET - Add ACT_LABOR_COST and ACT_BURDEN_COST to the DNU list (Labor Ticket update trigger looks for these fields being updated and bails out)

Revision bump for patch release"
v1000.1103 - Fix CUSTOMER.SPECS Object Reference Error & Normalize *_BINARY Properties with TYPE initialized as "D"
"v1000.1102
LABOR_TICKET / OPERATION / INVENTORY_TRANS - Rework LaborBackflush for re-use & Resolve Decimal Floating Point Rounding Issues (Remee Products)
CUSTOMER - Properties: Add UDF_LAYOUT UDFLayout, Fix NatureOfReturnTransaction
General - Update to #if !SingleSite for better debugging
Clean Up - SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED via SqlCommand (CUSTOMER_ORDER, INVENTORY_TRANS, LABOR_TICKET, SERVICE_RECEIPT)
Fix typos - AccountingSettings: ActualCosting in CostingMethodEnum & PART_SITE_VIEW: Fix typo UserDefinedFieldLabels"
"Update .NET Framework to v4.6.2

Tag & Release next"
v1000.1101 - Add internal BlindUserCredentials() to override Assembly Internally Signed Check
"Fix for null error for Sales Rep

Assembly bump for release / update (v1000.1100)"
"Remove old x86 Build Configs
Update other InternallySigned() checks with Dave G's new web code behind .cs logic
VMPWD - Add safety check: VMPWD only available for x86 (32-bit)"
"* No Logic Changes *
General - Convert MultiSite to !SingleSite for debugging readability
BaseClasses
- Update CeilToScale from internal to public
- Remove MathRoundAwayFromZero & inline with Math.Round([amount], [scale], MidpointRounding.AwayFromZero) in RECEIVABLE
RECEIVABLE - Convert SortedList to Dictionary, Update to use Object Initialization
REQUIREMENT - Fully Implement PartSiteView & Use it"
v1000.1001 - Add Parent logic to RECEIVER_LINE & RECEIVER_LINE_DEL; Clean Up
Remove //KM todo's from source -
"Support for Visual 10 - 

- New schema
- New Objects

- Validation logic to support new Visual features
      - Accounting Period checks (do not allow transactions based on LOCK_MFG, LOCK_AP, LOCK_AR, and LOCK_GJ)
      - Part checks (do not allow transactions based on ALLOW_CO, ALLOW_PO, ALLOW_WO)
      - Visual Help file contains the programs that these checks apply to

- Basic logic to support Move Request module (this needs a different license key for Shop Floor Mobile to activate - 0B00-0001-1B00-0064-1149-3989-000A-000A)"
Update hardcoded int for to SqlDbType & OracleType Enums for readability
"v908.1215
- CONTACT: Remove Invalid HONORIFIC Exception (Can type anything into the Dropdown)
- CUSTOMER: Add various Properties, Add more validation to BeforeDatabaseInsertUpdate, Added defaultTermsQuery if ApplicationGlobal.DEF_TERMS_ID not set, replace string.IsNullOrEmpty() with string.IsNullOrWhiteSpace()"
"v908.1214
- CUSTOMER: Add BeforeDatabaseInsertUpdate & AfterDatabaseInsertUpdate (Update Checks from Insert missing on Update)
- Refactor: == null to string.IsNullOrEmpty(); Set Parent; Use private Cache Objects better
* Resolves Issues Updating Customer for Migration via SBO (Albion Engineering)"
"RECEIVER_LINE - Only create Inventory Transaction for Parts and Burdens (not services)

Revision bump for patch release"
Fully implement PART_SITE_VIEW
"v908.1212
- Ensure string not null before calling ToUpper()
- Fix PART's EffDatePrice Property
- Re-Add Parent on CUSTOMER_ORDER & CUST_ORDER_LINE's USER_DEF_FIELDS.UserData Refactor"
Revision bump for tag release (v908.1211)
"SHIPPER_LINE - Added Carton creation when a default Container is set for a Part, Customer ID, and Ship To ID (code taken from PM_FUNCTION_2 in VMSHPENT in Visual source)
             
INVENTORY_TRANS - added internal order line and line number properties to the Adjust Out object to support the container creation.  When containers are created that match the criteria stated in SHIPPER_LINE above, individual inventory transactions are created, and an Adjust Out is created for each container

PALLET_DETAIL - added some BeforeDatabaseInsert validation to conform standard Business Objects rules"
SHIPPER - update the TRACE_INV_TRANS OUT_QTY when deleting a SHIPMENT that has trace lots
"Check for ""SynergyBusinessObjects"" as the assembly name of the ""signed assembly"" and then search for another loaded assembly that is signed.
This is what happens if an ASPX code behind .cs file calls SBO directly - SSIS Script Tasks may also behave the same way."
Fix Typo - Datatabse to Database
"v908.1210 - CUDF


Added a new section of code to incorporate the StringListSettings
--String List is either a FIXED list of values or DB Query
StringListSettings will properly define a list


            foreach (USER_DEF_FIELDS.UserData udf in col.UserDefinedFields)
            {
                switch (udf.DataType)
                {
                    case USER_DEF_FIELDS.DataTypeEnum.StringList_1005:


                        ComboBox cboUDF = new ComboBox()
                        {
                            FormattingEnabled = true,
                            Location = new System.Drawing.Point(130, yLoc),
                            Name = ""cboUDF"" + yLoc,
                            Size = new System.Drawing.Size(ctrlWidth, 17),
                            TabIndex = tabStopIndex,
                            Text = udf.FieldValue,
                            Tag = udf
                        };
                        cboUDF.Validating += CUDF_Validating;

                        foreach (string listItem in udf.StringListSettings.GetList())
                        {
                            cboUDF.Items.Add(listItem);
                        }

                        pnlCUDF.Controls.Add(cboUDF);
                        break;
                }

Added a missing CUDF Type - Uniform Resource Locator or URL for the layman
--Type 1006 - treated as a string [type 5]

Cleaned up a bug in the CASE statement that will toss an exception vs ""eating"" the value - the solution would NULL any unknow values

Implemented CUDF in CUSTOMER_ORDER and CUST_ORDER_LINE

Discontinue / Obsolete AddUserDefinedField
--Made sure it still works, but its a HACK - this needs to be removed (CODE REVIEW DECISON on compatibility break)"
v908.1209 - OPERATION: Always Default SETUP_COMPLETED to N (not Y) when Type is M (Engineering Master) & Q (Quote Master)
v908.1208 - Common NextNumberGenLsa: Overhaul to properly support Oracle & MS SQL (Added SHARED Dataspace Enum & Context for PK)
"v908.1207

RECEIVER_LINE - Multi / Single Site 
--Usage of the PART_SITE_VIEW object - this eliminates several IF DEF blocks
--This has eliminated a BUG, on CONSUMABLE - when it is NULL

Object reference not set to an instance of an object. - RECEIVER_LINE.cs:line 595"
"v908.1206
- OPERATION: Always Default STATUS to U (Unreleased) when Type is M (Engineering Master) or Q (Quote Master) *Same as WORK_ORDER & REQUIREMENT*
- REQUIREMENT: Add STATUS safety check *Same as WORK_ORDER & OPERATION*"
"- SHIPPER_LINE - BeforeDatabaseInsert - Check for Delivery Schedule, if there is one, reset USER_SHIPPED_QTY to 0 before summing Delivery Schedule's USER_SHIPPED_QTY

Revision bump for patch"
v908.1204 - Don't create an Inventory_Trans for Services on a PO Receipt line.
v908.1203 - DOCUMENT Add proper support for Tenant / Sites
"Custom SBO Build (rolled into Trunk) for 6.5.2 to support Ultra Clean (Paul Turnberg Project)
--This replaces the previous 6.5.3 version
--Rename 6.5.3 references to 6.5.2"
"v908.1201
- Specs (*_BINARY): Normalize behavior (Insert, Update, Delete w/ Base Parent) across all Objects
- CUSTOMER_ORDER: Gen Next ID when empty string & On Insert always set TOTAL_AMT_SHIPPED = 0
- QUOTE, QUOTE_LINE & QUOTE_PRICE: Implement Base Parent & Clean Up (Remove CustomList)
- QUOTE_ORDER: On Insert Set CREATE_DATE if null"
Revision bump to 908.1200
"- Add support for SQL Server 6.5.3

Some more testing should be done before full release"
"v908.1132
- WORK_ORDER, OPERATION & REQUIREMENT: Add DNUFields (Resolves WORK_ORDER.ChangeStatusOfSubordinateObjects overwriting DNUFields)
- Removed invalid WORK_ORDER.SetEstimatedCosts & Cleaned Up WORK_ORDER.WORecalc
- CUST_ORDER_LINE: Remove default SALES_TAX_GROUP_ID from Header & Add ACCEPT_EARLY from Header"
PAYABLE_LINE - Fix issues with SingleSite calling SITE_ID in some queries
- ACCOUNT_PERIOD - Fix Loadby method for Visual 7.0.0 (DataReader error)
"INVENTORY_TRANS - Minor location logic change when getting location qty (so it's not always 0 during an inventory transfer)

Revision bump for patch release"
"Add proper logic from Infor Source for issuing negatives based on Site settings

Revision bump for tag release (for Pathguide LMS integration)"
"PartSiteView and ConvertUserQty updates for DEL_LINE QTY calculations base on USER_QTY and UOM conversions. 
This scheme needs to be applied at the line level also but this is a ""validation check in"" before we break everything.
Also don't forget to make ORDER_QTY a read-only property (VS2019 feature) at some point - another potential app breaker."
v908.1127 - Common GetUserPermissionLevel Add optional componentID & CUST_PRICE_EFFECT GetPrice Fix Price Breaks 1-9
v908.1126 - Set WORK_ORDER CLOSE_DATE when STATUS is Closed & Cancelled
"Added comments for NOTATION.TYPE codes 
--From Rick - CTD Code"
v908.1125 - SHIPPER_LINE: Resolve Null Reference Exceptions when CustOrderLine not Part
"v908.1124
- CUST_ORDER_LINE: Fix LineTotal TRADE_DISC_PERCENT calculation (Fix Divide By Zero Error)
- VENDOR_QUOTE: Implement CURRENCY_EXCHANGE"
v908.1123 - LaborBackflush when Site: Generate Labor Tickets During Backflush (BACKFLUSH_LABTICK) or Resource: Auto Reporting (AUTO_REPORTING)
v908.1122 - Update SHIPPER_LINE PrepareNewLine to properly default Warehouse & Location for all scenarios & Clean Up RECEIVER
"On IBT_SHIPPER delete
- throw exception if there are IBT Receipts against it.
- Reverse the shipment qty's from IBT_LINE for each IBT_SHIPPER_LINE delete

Revision bump for patch release / tag"
v908.1120 - Support Legacy Leg Save without Parent structure defined
v908.1119 - Resolve Null Reference Exceptions in CUST_ORDER_LINE.BeforeSaveValidationLogic()
v908.1118 - Resolve BlindUserCredentials.BlindUserCredentials for Users greater than 12 characters
v908.1117 - Do NOT convert byte[] to string in GetParameter for Oracle Data Type = 2 (Blob)
"v908.1116
- Resolve Null Reference Exception on PART_SITE_VIEW Product & when Part is NULL & Inheritance of UserDefinedFieldLables
- Add REQUIREMENT DimensionalInventoryCalculation: TODO - Work Order Variables Replacement Needed"
v908.1115 - Enhance WORK_ORDER with Variables properties
"v908.1114 - Auto Issue Logic Change

--Kimber reported problem on 908

Modifications to use Active NON Locked Part Locations
Verified logic reviewing Infor Source (908)

--Use Warehouse / Location from RQ
--Find Auto Issue by Warehouse
--Default Part Auto Issue
--Primary Warehouse Location
--Special Case - Max inventory qty by Warehouse, where the Warehouse is the Site ID"
v908.1113 - Resolve SHIPPER_LINE BeforeDatabaseInsert not setting CustOrderLine defaults when property already accessed & General Cleanup
"v908.1112 - PAYABLE: Use Vendor Default Payable Acct ID if exists prior to Payable GL Interface
- Clean Up PAYABLE & CASH_DISBURSEMENT; CASH_DISBURSE_LINE: Update Exception Message"
"v908.1111 - Update BaseClasses.ConvertType for string to byte[] & BaseClasses.GetParameter Oracle for byte[] to string
- SHIPPER: Add LONG_DESCRIPTION_Text"
"v908.1110 - Enhance CARTON, CARTON_LINE, SHIPPER, SHIPPER_LINE, SHIPPER_LINK
- Properly handle defaulting SHIPPER_LINE's InventoryTrans.LOCATION_ID when WAREHOUSE_ID is not Primary Warehouse"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1343] 
--ONTIME END OF INTEGRATION--

  - In the BaseClasses object, the database check  (which adds database name and version to a static dictionary) is not thread safe.  In some cases, there can be collisions (such as a web services) which throws a ""Key already exists"" dictionary error.  We are eating this error to continue.

Revision bump for patch release"
Common.NextNumberGenLsa - update VTA table names
v908.1108 - Handle Null Reference Exception for SALES_TAX_GROUP.SalesTaxes
Clean Up OrderTotalSummary
"Spec and Binary fields are actually encoded in UTF8 not ASCII
See the 8.0.0 release notes on page 99 under ""Oracle database upgrade notes"":

 - BLOB columns retain the same data type. The data in the BLOBs is converted to single-byte UTF8. This ensures that tools such as SQL Developer are able to work with the data in these columns.

This explains why Oracle remained at UTF-8 while SQL Server went to Unicode"
V908.1107 - removed the vta. prefix on the lsa_numbering table for lsa next number gen processes
v908.1106 - Refactor & Fix PART_SITE_VIEW (old PartTenantSite) - Add SHIPPER & SHIPPER_LINE
v908.1106 - Refactor & Fix PART_SITE_VIEW (old PartTenantSite)
"v908.1105 - this is a fairly Major change due to the number of lines of code changed......anyways, here it goes

*Initial Objective* - Allow COL Units Conversion to work on both Insert & Update (Update was not handled)
*Secondary Objective* - Organize and reduce lines, reusing common components (GlobalSettings, PartTenantSite, AccountingSettings)

*IF/DEF* - Keep on the change from #if MultiSite to #if !SingleSite to improve on external application debugging (DERP for example)

*Obsolete*
--PART.PRODUCT, PART.PREFERRED_VENDOR, PART_SITE.Product (Included in PartTenantSite.cs)
--MultiSite ONLY - CUSTOMER_PRICE use --> CUST_PRICE_EFFECT
--*HACK* Removed the warning message for use of CUSTOMER_PRICE in SRBOB Code
--*HACK* Removed the warning message for backwards compatible usage of CUSTOMER_PRICE

*Part Changes*
--Added a PartSiteView type object that consolidates the Part / Part Site settings all with the fall through logic - PartTenantSite.cs
--Reduce many of the Single/Multi site IF/DEF blocks with this common component
--Added PRIMARY_LOCATION / PRIMARY_WAREHOUSE (Single Site Only - Already in Multi)
--Added Property - PartView to PART_SITE (PartTenantSite)

*AccountingSettings changes*
--Added DDP_ENABLED flag for Warehouse required on CO changes

*Parent / Child* structure changes (avoid needing to set a header column (STATUS = STATUS))
--(c)CUST_LINE_DEL-->(p)CUST_ORDER_LINE (remove _CustOrderLine and use Parent)
--(c)CUST_ORDER_LINE>(p)CUSTOMER_ORDER (remove _CustomerOrder and use Parent)
--(c)EC_LINE>(p)EC (remove _ParentEC and use Parent)

*Customer Order* Refactor
CUSTOMER_ORDER
CUST_ORDER_LINE - 100
CUST_LINE_DEL
-- Change the readability of CUST_LINE_DEL BeforeInsert code
--Incorporate an OrderLineType enumeration (Misc, Part, SC)
--Add Relational Warehouse Property
--PartView
--Move the Insert logic to a BeforeSaveValidationLogic (**the original objective LOL) and call from both Insert and Update events
--**Big time refactor ** BeforeSaveValidationLogic.  Organize Validation, Defaults and UseCase logic (OrderLineTypeEnum)
--Added AccountingSettings to CO
--Surfaced Product on SERVICE_CHARGE

*Shipping* Refactor
--Added *GlobalSettings* to work App Global / Site based on Project
--Reduced the usage of IF/DEF - Chopped out 100 or so lines

*Inventory* Refactor
--Added *GlobalSettings* to work App Global / Site based on Project"
"Non Release Commit - UDF_LAYOUT
--Added logic to support reading and writing out the standard 1-10 UDF Labels, exposing usable"
V908.1104 - fix burden_per_hr,bur_per_operation/burden_per_unit/burden_percent to pull for shop resource site when costing method is actual
"PAYABLE_LINE - Fix if / else statement when calculating NonLandedUnitCosts

Revision bump for patch"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1316] 
--ONTIME END OF INTEGRATION--

  - PAYABLE_LINE - Fix for receiver line unit cost updating after Payable Line save

Misc: Add missing logic for Service receipt when calculating LandedUnitPrice

Revision bump for patch release"
"v908.1101 - Update INVENTORY_TRANS & LABOR_TICKET Save catch TRANSACTION_ID Retry to properly handle re-throw from BaseClasses.Save
- Update BaseClasses.Save to only include SBO Version once
- Remove LABOR_TICKET Retry Hack"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1310] 
--ONTIME END OF INTEGRATION--

  - PAYABLE - Fix issue with Distributions not saving FIN_DIST_DETAIL line(s) (for Visual 71x and above)

Revision bump to 908.1100 for official release"
v908.1029 - Add: You must create a transaction in an Active ACCOUNT_PERIOD to CASH_DISBURSEMENT, CASH_RECEIPT & RECEIVABLE / Fix Warnings
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1307] 
--ONTIME END OF INTEGRATION--

  - RECEIVABLE - Fix distributions on Memos / Shipping returns (reversing Credits and Debits). 
                 (VNumberRound should always be done against the absolute value)

Revision bump for patch release"
v908.1027 - Part Enhancements
"v908.1026 - Customer Contact
--Update the primary contact information on Customer Save"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1306] 
--ONTIME END OF INTEGRATION--

  - RECEIVABLE.CreateARInvoice - Only add Freight when the Freight Terms are 'B'illed

Assembly bump for patch release"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1305] 
--ONTIME END OF INTEGRATION--

  - PAYABLE_LINE - Fix query when calculating new Unit PRice on a receiver line

Oracle doesn't like when a parameter is included but not in the query.

Revision bump to 908.1024"
"Schema change for SITE_ID to be included as primary key on VENDOR_QUOTE table

Set oracle and schema 907 post builds to build always (they wouldn't build otherwise)

Revision bump for patch"
"908.1022 - Customer Contact - Oracle
--Cleanup on CustomerContact query with <NULL> Customer ID (It is not necessary to query EVERY Contact....)
--Restructure the CUSTOMER_CONTACT & CUST_CONTACT logic.  CUSTOMER_CONTACT is inserted from a trigger, and no longer needs to be inserted (....the SqlServer trigger has logic to avoid inserting a duplicate record, Oracle does not)
 --Expose and Cleanup of the ""NextContactNo"" method for usage in CONTACT"
"908.1021 - Customer Functionality
Add missing contact fields"
"908.1021 - Customer Functionality
Implement Next Number Gen on CUSOTMER (Feature functionality since 7.1.2)
Implement auto generation of Default Contact with NEW Customer creation
--Visual will create a new contact direct from the Customer Entry screen
--Generate Contact with Customer Data (Primary contact)"
v908.1020 - REQUIREMENT's ReferenceDesignators & ReqPartAlternates return empty lists instead of null
"Added top level WO Header (WorkorderHeader) to WO, OP and RQ
--Validation that you cannot use the WO Header Part ID in any of the BOM Structure"
v908.1018 - Add Support for SSO (Single Sign On)
"- Find all references to ""Database.Connection.CreateCommand()"" and change to this.CreateNewCommand (this causes connection leak... the Command gets cleaned up but Database.Connection always returns a ""new"" instance of a IdbConnection which just hangs out)

Revision bump for patch release"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1292] 
--ONTIME END OF INTEGRATION--

  - RMA: New Cust Order ID should not be a required field when RMA is a credit type (see notes in RMA.cs - Lines 196 - 209)

Revision bump for patch release"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1291] 
--ONTIME END OF INTEGRATION--

   - PAYABLE_LINE - Use parameters when updating Receiver Line table w/ ad hoc queries

Revision bump for patch release"
"v908.1014
LABOR_TICKET use Operation / Requirement Costs before Defaults & HOURLY_COST use SETUP_COST_PER_HR if Setup
LABOR_TICKET.LaborBackflush - Allow all but Closed & Cancelled & Re-Use in INVENTORY_TRANS"
CUSTOMER_ORDER Add SALES_REP & SALES_TAX_GROUP Properties & check exists on BeforeDatabaseInsert; Cleanup CUSTOMER & CUST_ADDRESS
CONTACT - Fix reload & append on each CustomList Property call
Move CreateNewCommand to DatabaseConnection
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1289] 
--ONTIME END OF INTEGRATION--

  - PAYABLE_LINE - Throw error if a valid PO / Line # exists but no Receiver ID / Line # (Visual doesn't allow this)

Revision bump for patch release"
v908.1012 - Enhance OPERATION, OPERATION_RESOURCE & REQUIREMENT with Enums & Helpers, Enhance SERVICE with Specs
v908.1011 - WORK_ORDER: Default BASE_ID to PART_ID on Engineering Master Main Leg & Do NOT Allow Splits on Engineering / Quote Masters
"v908.1010
- Fix Null Ref Exceptions if no Part on WORK_ORDER & REQUIREMENT
- Update WORK_ORDER.ChangeStatusOfSubordinateObjects to use existing object instead of reload (Fixes losing new STATUS on existing object)"
v908.1009 - Update CONTACT: Added MARITAL_STATUS check; save CUST_CONTACT & VEND_CONTACT on AfterDatabaseInsert
"v908.1008 - Update BaseClasses's Parent to propagate NotifyChanged
- Applied to: CUST_ORDER_LINE, DEMAND_SUPPLY_LINK, OPERATION, OPERATION_RESOURCE, REFERENCE_DESIGNATOR, REQ_PART_ALTERNATE, REQUIREMENT & WORK_ORDER"
"v908.1007 - WORK_ORDER, OPERATION, REQUIREMENT:
- Fix DeleteUDFs() NullReferenceException
- Enhance Document Refs
- Add various Properties / Checks for BeforeDatabaseInsert & Update
- Update Calc Qtys to handle OVERRIDE_QTYS (Share Code)"
V908.1006 - change to Common removing db.useoledb=false due to a loop when using lsa option
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1286] 
--ONTIME END OF INTEGRATION--

  - Fix issue where incorrect VAT values are retrieved when saving AR Invoices

Revision bump to 908.1005 for patch release"
v908.1004 - Enhance DEMAND_SUPPLY_LINK & USER_DEF_FIELDS on WORK_ORDER, OPERATION & REQUIREMENT
v908.1003 - CUSTOMER_ORDER: Validate CUSTOMER_ID BeforeInsert, CUST_ORDER_LINE: Add set to Specs
"908.1002 - Oracle issue with Binary Decoding

GetString did not match the same as GetBytes

--There is still a strange "" "" (space) appended to the end of the binary, and do not see why this is needed.  Testing in both 7.1.2 & 9.0.8 Oracle, Visual is showing the added space.  However, I noticed a ticket opened for Wolf and will not change it at this point."
v908.1001 - Add SetContextConnectionUserCredentials()
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otf:1028] 
--ONTIME END OF INTEGRATION--

  - Support Visual 9.0.8

Revision bump to 908.1000"
v907.1210 - DatabaseConnection: Add Support for Context Connection, Dispose & Finalize
Refactor / Clean up
Fix DataReader Warnings (Convert to using)
Fix Warning
v907.1204 - Surface BlindUserCredentials for Internal Use Only
"DatabaseConnection - Added ""MagicHostName"" property to properly set Calling Assembly instead of Top Level, then follows normal logic to see if it's signed by VTGKeyPair or SDSProductKey.  To make this work, call DatabaseConnection constructor with new Uri with a URL of ""http://xyzzy/""

Example Scenario: Create a wrapper dll that's signed and calls Business Objects.  DatabaseConnection instantiation will set Calling Assembly as the wrapper dll (instead of the app that references wrapper dll)."
"v907.1202 - Update for PreShipment Packlist (Add SHIP_TO_ADDR_NO, include FREE_ON_BOARD)
- Fix SingleSite typo in SHIPPER_LINE"
"907.1201 - Added Version to SBO Save method (base class save)

Example Message: 

SBO Version: 907.1201.7073.34222
Application Version: 1.0.2.1

SITE_ID is a required Field

Error at line 3376
<CALL STACK>"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1257] 
--ONTIME END OF INTEGRATION--

  - PAYABLE_LINE - Add missing Visual functionality for calculating FIXED_CHARGE.  For no rhyme or reason, if it's a return receipt being vouchered, Visual sets the UNIT_PRICE of the Receiver Line to NULL (if nUNIT_PRICE is passed in - which is correct, but there's nowhere in code to find this).  Also, when saving Material Cost of Inventory Transaction, make sure it's the absolute value (positive) 

Revision bump to 907.1200 for release.

Some more testing will be done, and then tagged and released"
v907.1101 - Add REFERENCE_DESIGNATOR & REQ_PART_ALTERNATE to REQUIREMENT with Save AfterDatabaseInsert & Update
"v907.1100 - Add VMPWD for use with Internally Signed Assemblies Only
- Move validateAssmbly logic to AssemblyExtensions for reuse
- Clean Up DatabaseConnection & use AssemblyExtensions to validate Assemblies"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1250] 
--ONTIME END OF INTEGRATION--

  - PAYABLE - Fix null reference error when updating FIFO layers after Save 

Revision bump for patch"
Including missing Oracle & SqlServer schema cs files (dummy move)
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1247] 
--ONTIME END OF INTEGRATION--

  - SERVICE_RECEIPT - Include DNU for WORKORDER fields, OPERATION_SEQ, TRANSACTION_ID, and SERVICE_ID (Oracle trigger TAU_SERVREC_1 causes error VMFG-31048 on these fields)

Revision bump for patch release"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1245] 
--ONTIME END OF INTEGRATION--

  - PAYABLE - Allow Sell Rate & Buy Rate to be overridable when Voucher Currency ID does not match Functional Currency ID

Revision bump for patch release"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1243] 
--ONTIME END OF INTEGRATION--

  - PAYABLE_LINE - l.PO_RECV_QTY should come from Receipt's USER_RECEIVED_QTY (not Purchase Orders TOTAL_QTY_SHIPPED - this won't work if it's a receipt return)

Revision bump to 907.1005 for patch release"
Remove old / unneeded "material issue" list
Revision bump for patch release
PAYABLE - Fix FIFO when adjusting material issue costs when invoice prices on payable lines change
Assembly bump for patch release
"PAYABLE & PAYABLE_LINE - correct FIFO material cost calculations when Payable line price differs from PO / Receipt line price

TODO: Figure out what Visual is doing to these costs on Receipt Returns when the prices differ like above (it is not clear at all)"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1238] 
--ONTIME END OF INTEGRATION--

  - Add condition to check if Visual is 907 or above before saving SHIPPING_INVOICE object

Revision bump for patch release"
"RECEIVABLE_LINE - Move Default VAT GL ID check and only set when there's a VAT present that doesn't have a VAT GL code.

Next up will be tag..."
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1236] 
--ONTIME END OF INTEGRATION--

  - RECEIVABLE_LINE - Fix VAT query and defaults when saving

Revision bump for patch release"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1234] 
--ONTIME END OF INTEGRATION--

  - Throw error when Requirement Part ID matches Work Order Part ID


Misc: RECEIVABLE - Set TERMS_ID to null when a memo is created and a due on receipt TERMS ID does not exist"
SHIPPER_LINE - Include SERVICE_CHG_SITE_ID when saving SHIPPER_LINE with a service charge
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otf:993] 
--ONTIME END OF INTEGRATION--

  - Certify to Visual 9.0.7

Assembly bump for release

Misc: Set Terms and Due on Receipt defaults based on new rules in Visual documentation 
      Create SHIPPER_INVOICE object on Packlist creation and AR Invoice generation"
"PAYABLE_LINE - Make sure to save Inventory Trans (or Service Receipt)
             - When saving service receipt, update fixed costs, actual material cost, and unit cost properly


Tag coming next"
"PAYABLE_LINE - include Fixed Charge when re-calculating material costs on associated transactions
             - Set Service Receipt costs if this payable line is associated to a service receipt (instead of inventory transaction)

Revision bump for patch release"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1224] 
--ONTIME END OF INTEGRATION--

  - PAYABLE_LINE - Update all associated transactions if Payable Line has a receipt and the Vouchered Amount differs from amount purchased / received

Revision bump for patch release"
"PAYABLE - When creating distribution, if a distribution already exists, change the AMOUNT_TYPE based on the new AMOUNT value

PAYABLE_LINE - Updating the Receiver Line's transaction with new material costs (if voucher amount differs) should only happen for Actual costing

Revision bump for patch release"
"906.1110
incorrect value set in RMA for ""Replace"" option"
"v906.1109
Cash Receipt logic change to to fix incorrect rounding on discounts
--Implementation to keep Discounts was causing VnumberRound to incorrectly round a negative number
--Make sure to VNumberRound the AMOUNT during the save, after the DR / CR negative swap logic"
"PAYABLE_LINE - Move code that calculates new Material Cost
             - Future revision will update all Material Issue(s) with material costs (if the vouchered amount / qty is different than what was received)

PAYABLE - Add the currency of the PAYABLE to the list of Currency Exchanges (if it's not in the list already - in the case of creating a voucher against a Currency that isn't a tracking currency)

Revision bump to 906.1108 for patch"
"PAYABLE - Add missing logic when there aren't any Tracking Currencies that isn't the functional currency while building Distributions

PAYABLE_LINE - Divide Amount by QTY when calculating Material cost on Inventory Transaction (when Amount differs from what was received)

Revision bump for patch Release"
Revision bump for patch release
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1222] 
--ONTIME END OF INTEGRATION--

   - Break apart and re-create creating Payable Distributions from Infor source (wow)

Misc: Fix logic that updates Material Cost on Inventory Transaction linked to Payable Line(s) Receiver Line"
"Native was written without a value (add logic around the save of DIST; compare currency to the parent currency
906.1105"
Revision bump for patch release
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1215] 
--ONTIME END OF INTEGRATION--

  - Payable Line - Add missing logic when Line(s) Price & QTY do not match Purchase Receipts Price & Qty"
"906.1103 - RMA Changes
--Business rules to keep RMA TYPE correct with options 
Added RmaTypeEnum for ""friendly"" naming"
"Programming Team - Code Review feedback 
--when dealing in an IF/DEF situation, keep method calls and definitions continuous to maximize readability

DO THIS:

#if MultiSite
        public static string GetNextNumber(DatabaseConnection db, string tableName, string fieldName, string siteID)
#else 
        public static string GetNextNumber(DatabaseConnection db, string tableName, string fieldName)
#endif


NOT THIS:

       public static string GetNextNumber(DatabaseConnection db, string tableName, string fieldName
#if MultiSite
            , string siteID
#endif
            )"
"v906.1102 Cash Application (CASH_RECEIPT) 
Modifications to support Tracking Currency Distributions
--Added Currency Exchange logic for BANK Deposit DEBIT and Cash Payment Apply CREDIT
--Added rounding account logic
--Added GL Interface lookup (Rounding, OverUnder)


Refactor of CASH_RECEIPT_DIST to handle NEGATIVE CR / DR (reverse type)
--Code was moved from many places in CASH_RECEIPT to single location in CASH_RECEIPT_DIST"
Revision bump to 906.1101 for Patch Release
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1213] 
--ONTIME END OF INTEGRATION--

  - SHIPPER_LINE - Fix Oracle query when updating linked work orders"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1210] 
--ONTIME END OF INTEGRATION--

  - SHIPPER_LINE - Remove brackets from Action Query after insert (for Oracle)"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1195] 
--ONTIME END OF INTEGRATION--

   - Visual 9.0.6 Oracle schema/unicode Fixed issue #

Revision bump to 906.1100 for tag / release."
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otf:972] 
--ONTIME END OF INTEGRATION--

  - Certify to Visual 9.0.6

Revision bump to 906.1000 for release"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1015] 
--ONTIME END OF INTEGRATION--

   - RECEIVER_LINE - Create Inventory Transaction when there's a purchase burden (no part)"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1189] 
--ONTIME END OF INTEGRATION--

  - OPERATION - Default DISPATCH_SEQUENCE to 99999 (Visual 9.0.5 - Infor notes this will be implemented in future versions)"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1185] 
--ONTIME END OF INTEGRATION--

  - NEXT_NUMBER_GEN - Fix Unique Index error when saving

Misc: Revision bump for patch release

Above fix required the re-building of the schema .xml and visual schema files to make SITE_ID a primary key on Next Number Gen table 

Also fixed duplicate properties in SqlServer 902 schema xml"
v905.1008 - Add Support for CASH_DISBURSEMENT.PAYMENT_METHOD = "B" // BACS
v905.1007 - Update BaseClasses, Common, CUSTOMER_ODER, and CARTON
Common - Force GenerateNextNumber's QueryNNG & IncrementNNG in Transaction if not already
"Update BaseClasses - CurrentUserID, CurrentDatabaseName, CurrentServerName
& Common - GetUserPermissionLevel to load from Database.UserCredentials instead of Reflection"
BaseClasses - Fix Warnings
Carton - BeforeDatabaseInsert: Added default to 0 when null for ACT_FREIGHT, USER_TOTAL_WEIGHT, TOTAL_WEIGHT
CUSTOMER_ORDER - Added CustomerOrderStatusEnum & Status Property
Common - Refactor (No Actual Changes)
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1186] 
--ONTIME END OF INTEGRATION--

  - AP Invoice Entry - Use Visual rounding before saving payable line amount(s)

Misc: Fix other issues with negative amount(s) and rounding

Revision bump to 905.1006 for patch release"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otf:962] 
--ONTIME END OF INTEGRATION--

   - add ability to clone PART_SITE (like PART)"
"905.1005
--Cash Receipt - Discount Percent Apply logic

--DR ReceivableDiscount
--CR AR"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1176] 
--ONTIME END OF INTEGRATION--

   - Validate AP Invoice Posting Date against Account Period before saving

Revision bump to 905.1004 for patch release"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1175] 
--ONTIME END OF INTEGRATION--

  - Fix Payable Distributions when VAT and / or Duty Amount(s) are negative values

Revision bump to 904.1003 for patch release"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1169] [otd:1168] 
--ONTIME END OF INTEGRATION--

   - Verify VAT and VAT Exempt status before Payable Line save
   - Do not override duty and vat amounts if they are provided (Payable Line)


Revision bump to 905.1002 for release"
"v905.1001

Minor cleanup on Next Transaction ID methods with transaction isolation setting 
--SERVICE_RECEIPT.cs
--INVENTORY_TRANS.cs

Functionality add for Voucher Payment (CASH_DISBURSEMENT)
--Currency
--Distributions
--Check Header
--Check Details
--Line Level Financial Distribution (FIN_DIST_DETAIL)"
Update assembly to v905.1000 for release
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1152] 
--ONTIME END OF INTEGRATION--

  - RECEIVER_LINE - fix null reference when when updating Receiver Line w/ Service Receipt Transaction (not Inventory Trans)"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otf:933] 
--ONTIME END OF INTEGRATION--

  - Support Visual 9.0.5

Misc: Re-built Oracle 904 schema (noticed a mistake in the Project build)"
"More work related to Defect 1147 (Distributions with negative amounts in Payable)

- Really checking in code just in case I get washed away in Hurricane Florence lol"
Revision bump to 904.1215 for patch release
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1147] 
--ONTIME END OF INTEGRATION--

   - Fix Payable Distributions for lines that are negative"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1143] 
--ONTIME END OF INTEGRATION--

  - Inventory Transactions - Show error if there are duplicate Trace IDs before saving

Misc: Revision bump to 904.1214 for patch release to Kimber"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1141] 
--ONTIME END OF INTEGRATION--

  - PAYABLE_LINE - When updating ACT_MATERIAL_COST on Inventory Transaction, use currency exchanged amount

Misc: Revision bump to 904.1213"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1138] 
--ONTIME END OF INTEGRATION--

  - INVENTORY_TRANS.ACT_MATERIAL_COST - If applicable, this value should be changed to match the PAYABLE_LINE AMOUNT"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1134] 
--ONTIME END OF INTEGRATION--

  - PAYABLE_LINE - OnAfterSave - Check if RECEIVABLE_LINE exists before updating costs

Revision bump to 904.1211"
Revision bump to 904.1210 for Patch release
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1126] 
--ONTIME END OF INTEGRATION--

  - PAYABLE_LINE - recalculate Receiver Line Unit Price when Multiple Invoices Per Receiver Line is set

Misc: Remove the voucher checking & auto setting Landed Cost on Payable header, this is not Visual functionality by default (using source from 9.0.4)"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1124] 
--ONTIME END OF INTEGRATION--

  - Verify VAT_CODE on Payable Line is valid before saving

Misc: When VAT_ENABLED, if no VAT_CODE, throw error"
Revision bump to 904.1209 for patch release
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1121] 
--ONTIME END OF INTEGRATION--

  - Create INSTALLMENT and INSTALLMENT_LINEs after creating Installments (Payable and Receivable)"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1118] 
--ONTIME END OF INTEGRATION--

  - PAYABLE - Fix PAYMENT_DATE calculations based on Terms ID"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1113] 
--ONTIME END OF INTEGRATION--

  - PAYABLE_LINE - ACT_PO_BURDEN should remain null if no burden, not 0"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1119] 
--ONTIME END OF INTEGRATION--

  - PAYABLE_LINE - WITHHOLD_TYPE should remain null when VAT is enabled"
Revision bump to 904.1208 for patch release
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1117] 
--ONTIME END OF INTEGRATION--

  - PAYABLE - Fix VAT defaults for VAT_RCV_GL_ACCOUNT_ID column"
Revision bump to 904.1207 for patch release
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1114] 
--ONTIME END OF INTEGRATION--

  - Fix / Add rounding differences to proper account when saving Payable distributions"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1115] 
--ONTIME END OF INTEGRATION--

    - RECEIVABLE - Fix issue with RECIEVABLE_CURR entries after save"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1113] 
--ONTIME END OF INTEGRATION--

  - PAYABLE_LINE - Set ACT_PO_UNIT_PRICE and PRODUCT_CODE from Purchase Order Line when present

Misc: Assembly bump to 904.1206
      Minor fixes for HTS_CODE loading & Landed Cost Inv"
Revision bump to 904.1205 for patch release
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1112] 
--ONTIME END OF INTEGRATION--

  - PAYABLE_LINE - Fix issue with PO_GL_ACCOUNT_ID not being populated correctly"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1111] 
--ONTIME END OF INTEGRATION--

  - PAYABLE_LINE - Set PRODUCT_CODE when WorkOrder is set"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1109] [otd:1110] 
--ONTIME END OF INTEGRATION--

  - PAYABLE_LINE - Allow null QTY (Visual allows this)
  - PAYABLE - Fix currency creation after DatabaseInsert"
Revision bump for patch release
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1108] 
--ONTIME END OF INTEGRATION--

  - Fix VNumberRound issue(s) in certain situations"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1106] 
--ONTIME END OF INTEGRATION--

  - Respect Financial Application Global - Allow multiple AP invoices per receiver line"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1105] 
--ONTIME END OF INTEGRATION--

  - Fix default Contact ID issue when saving Customer Orders

Misc: Revision bump to 904.1203 for patch release to customer"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1101] 
--ONTIME END OF INTEGRATION--

  - set default Customer Part ID from Customer Price Effect / Customer Pricing"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1100] 
--ONTIME END OF INTEGRATION--

  - PAYABLE - throw error if Vendor doesn't exist Before Database Insert"
"- PAYABLE_LINE - Use parameterized query when getting VAT instead of string literal for date 

- Revision bump to 904.1202 for patch release / external ref"
Revision bump to 904.1201 for patch release
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1099] 
--ONTIME END OF INTEGRATION--

  - Use parameters instead of literals when updating TOTAL_AMOUNT in PAYABLE After Database Insert"
Revision bump to 904.1200 before release
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1097] 
--ONTIME END OF INTEGRATION--

  - PART (and PART_SITE when applicable): Default Status = ""A"""
Merged in changes from branch "Feature915-Installments"
Revision bump to 904.1100
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1095] 
--ONTIME END OF INTEGRATION--

  - Correct issues with Default Terms and use Application Global default terms if value is not already set (in Customer and Vendor)"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1094] 
--ONTIME END OF INTEGRATION--

  - WORK_ORDER - include ""ENTERED_BY"" data when saving Work Orders

Misc: Fix schema / add note to SRBOB Readme.txt to be sure to change MultiSiteCodeGen project to point to latest SQL Server schema"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1093] 
--ONTIME END OF INTEGRATION--

  - Customer Order Line - If Service Charge has a Product Code and Service Charge does not have default Revenue account, use what's in the Product Code"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otf:910] 
--ONTIME END OF INTEGRATION--

  - Support for Visual 9.0.4.

Misc: Revision bump to 904.1000"
Put back - oops
"Copy latest trunk Version - 903.1108 - Revision 7155

Part 2 of 2 - Copy from Trunk"
"Arkwin - Average Costing
--903.1108

Set COSTED_QTY on Transfer (Out only)
Set matching costs on Transfer costs
Move the timing up on the creation of InvTransAve - Makes sure to process immediately AFTER the insert (was not with Transfer)


Unrelated to AVE Cost, but write the UserID the same on both transactions (Transfer)"
Revision bump to 903.1107 for patch release / External Ref
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1084] 
--ONTIME END OF INTEGRATION--

  - Oracle - Fix issue with Spec and Notation writing
           - Use Unicode when Visual >= 8.0.0 AND Sql Server.  All other versions should use ASCII"
Revision bump to 903.1106 (for patch release & external reference)
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1082] 
--ONTIME END OF INTEGRATION--

  - Additional support for shipping delivery line schedules
       - OnAfterSave of SHIPPER_LINE_DEL will update CUST_LINE_DEL with amount(s) shipped
       - Prepare New Line will create SHIPPER_LINE_DEL and add it to DeliveryLines list when Shipment.CustOrderLineDelNo is populated with a valid Delivery Schedule Line"
Revision bump for patch 903.1105 Release
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1079] 
--ONTIME END OF INTEGRATION--

  - Fix issue with Vendor part pricing (for purchase order lines)"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1080] 
--ONTIME END OF INTEGRATION--

  - Fix for Operation Resources not being copied when Creating Workorders from Engineering Masters"
"GL should come from Product, then Part's Product, then Part Site's product (or service charge)
   - If a product code's GL is empty, it should be not be defaulted to the Part (at site or tenant) - Visual write's null to line
   - Related to Defect 1074

Assembly bump to 903.1104 for patch release"
"903.1103 - Average Costing (for Arkwin)
--Modification to existing rules (pickup last Inventory Transaction Average Cost Layer)
--Inventory Trans AVE - was missing on standard Adjust IN / Adjust Out (for tracking currency)

Incident IN-04614 
Defect 1078"
Revision bump to 903.1102 for Patch / Tag
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1075] 
--ONTIME END OF INTEGRATION--

   - Include Effective Date / Discontinue Date rules when creating Work Order from Engineering Master"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1074] 
--ONTIME END OF INTEGRATION--

  - Default GL to Part Site's Product code (if it exists) or else use Part's Product Code (if it exists)"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1069] 
--ONTIME END OF INTEGRATION--

  - Fix issue with Payable Distributions not creating entries when the voucher currency isn't the Functional Currency"
Revision bump to 903.1100 for official release
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1067] 
--ONTIME END OF INTEGRATION--

   - Include DUTY_AMOUNT when saving Payable Line(s)

- Also some code rearrangement/consolidating for Actual & Standard Costing when creating distributions
- Includes fix for REALIZED_EXCH calculations"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1062] 
--ONTIME END OF INTEGRATION--

   - Delete entries from PAYABLE_DIST (so long as they aren't 'P'osted) before saving Payable Distributions"
Revision bump to 903.1003 for Patch Release
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1026] 
--ONTIME END OF INTEGRATION--

   - Fix null reference error when saving an Indirect Labor Ticket"
Revision bump to patch v903.1002
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1059] 
--ONTIME END OF INTEGRATION--

  - Fix for Payable Distributions when Standard Costing is set"
RECEIVABLE - Commenting out code that checks for Memo and sets to Due on Receipt... critical patch needed for Customer / Credit Card as their system doesn't have DUE ON RECEIPT Terms ID.. will investigate how Visual knows which Due on Receipt to use.
Revision bump to 903.1000 before tagging and adding to external references
RECEIVABLE - If Memo, reset all Terms to DUE ON RECEIPT.  If Memo & less than $0, force FREIGHT_TERMS to B
LABOR_TICKET - Add logic to get AUTO_BACKFLUSH at the tenant level if it's null at Site Level
WORK_ORDER - Set default "INACTIVE" to "Y" if null (Visual default)
Re-include initial V_ tables in SBO MultiSite project
"- Remove ""V_"" restriction from query and use Exclusion table in BOB database to exclude new V_
- Re-add initial V_ tables
- Re-build SQL Server schema file (Oracle didn't need change - must not have cleaned and re-built codegen project after removing V tables in last revision)"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otf:894] 
--ONTIME END OF INTEGRATION--

    - Add support for Visual 9.0.3

- Add SYSCOLSORA_903.csv (9.0.3 schema from Oracle database)
- Add new CodeGen projects for 9.0.3 SqlServer & Oracle
- Add new Schema xml files for 9.0.3 SqlServer & Oracle
- Abstract class modifications (ECN tables - new columns) & new Visual table(INDIVIDUAL_PRV_HISTORY)
- Remove V_ tables (this is for CRM and should not be included)
- Modify BuildSchema.sql to exclude V_ & SR_"
"902.1101
Labor Ticket / Inventory Trans

--Removed logic around Semaphore
--Added retry logic for TransactionID - Primary Key Failure

Set flag in Constructor to force Save with Database Transaction....This is something that needs to be implemented in many more multi-table save objects."
"Add logic to UDF to delete (or not insert) on NULL data values
--Visual does not have a CUDF record for NULL records."
Revision bump to 902.1100 (for new release)
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1032] 
--ONTIME END OF INTEGRATION--

  - Fix GST/VAT override when saving Customer Order Lines"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1025] 
--ONTIME END OF INTEGRATION--

  - Throw exception if transactional records exist for Customer being deleted"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1021] 
--ONTIME END OF INTEGRATION--

   - Vendor / Contact associations added"
Revision bump to 902.1005 for patch release
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1024] 
--ONTIME END OF INTEGRATION--

     - Change logic around SHIPPER.ShipAll method"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1022] 
--ONTIME END OF INTEGRATION--

     - Change logic when updating Work Order Status during shipment"
Revert changes to Revision 6480
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1021] [otd:1022] [otd:1024] [otd:1025] 
--ONTIME END OF INTEGRATION--

   - Vendor / Contact associations added
   - Change logic when updating Work Order Status during shipment 
   - Change logic around SHIPPER.ShipAll method
   - Cascade delete necessary objects when deleting Customer"
"SBO - 902.1004
--Oracle 902 fix for duplicate schema problem
--Duplicate columns in Oracle Schema for every table

 private void btnFixOracle902_Click(object sender, EventArgs e)
        {
            StringBuilder sb = new StringBuilder();
            string[] lines = System.IO.File.ReadAllLines(@""C:\Work\Products\TestSBO\TestSBO\SchemaFix\Oracle.9.0.2.Schema.cs"");


            using (StreamWriter writetext = new StreamWriter(@""C:\Work\Products\TestSBO\TestSBO\SchemaFix\Oracle.9.0.2.Schema.csNew""))
            {
                string lastLine = string.Empty;
                foreach (string line in lines)
                {
                    if (lastLine.Length > 10 && line == lastLine)
                        continue;
                    lastLine = line;
                    writetext.WriteLine(line);
                }
                
            }
        }"
V 902.1003. Update ENTITY_ID field on a new PAYABLE_DIST record (single site).
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1009] 
--ONTIME END OF INTEGRATION--

   - Purchase Order Lines should default to DEF_UNIT_PRICE_CURR column instead of DEFAULT_UNIT_PRICE column if PO Currency is different from Accounting Entity currency

Revision bump to 902.1002 patch"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1005] 
--ONTIME END OF INTEGRATION--

   - Fix issue / error when updating RECEIVER_LINEs 

Misc: Revision bump to 902.1001 for patch"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:1002] 
--ONTIME END OF INTEGRATION--

  - Fix logic around Unit of Measure when creating RECEIVER_LINEs"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otf:876] 
--ONTIME END OF INTEGRATION--

  - Add support for Visual 9.0.2

Contains new schema files and changes to CodeGen projects.

OPERATION - Default OVERLAP_SETUP to “N” if value isn’t set

PART_SITE - Default IS_RATE_BASED to “N” if value isn’t set

SIZING - new class

Bump assembly to 902.1000"
Version 901.1013. Only use material for INVENTORY_TRANS (disregard labor, service, burden) while receiving a PO.
Version 901.1012 - Updated INVENTORY_TRANS to resemble the Visual code (i.e. looking for previous inc_trans_ave record same part, maybe same location).
"901.1011 - Wolf Defect 989
--Vendor Pricing is not capturing Default Price"
"Inventory Trans - Inventory Trans Logic 
--Zero costs on a Transfer
--Write NULL Burden (vs Zero)

Defect 993"
Revert the multisite project to 4.0.
Version 901.1010 - Updated average costing support (inv_trans_ave) and changed isnullorwhitespace to isnullorempty to support .Net 3.5
"901.1009 - Inventory Trans - DIST Logic
--DIST Records on a Transfer should not be written

Refactor of code to eliminate Multi / Single Site code that relates to Accounting Settings
--Incorporated AccountingSettings to INVENTORY_TRANS & chopped out duplicate sections"
"901.1008 - Added IBT Functionality
--IBT & IBT_LINE Default & Validation Logic was non existent 
--IBT / IBT_LINE support Binary Specs
--Added SITE to Warehouse"
"901.1007 - AB Note - RECEIVABLE_DIST DR / CR do not balance (Defect 984)
--Added DIST Rounding Logic
--Changed rounding rules to use GuptaHelper.VNumberRound on the DIST Amount (vs Math.Round)"
"Defect 976 
901.1006 - AB Note VAT Changes
--VAT requires a GL on the RL - Default to Interface table when missing GL Account in VAT
--Add VAT Summary to DIST records"
"901.1005 - AB Note issues
--Defect 972,973, 974

Pending Defect (comments added to resolve 975)

Fixed bug in NULL to 1 (Extensions method)
Modification to UNITS to rework GetConversionFactor.  Changed it to GetMultiplierConversionFactor with intentions to ""Multiply"" that result against the Usage Qty
(Incorporated Visual pecking order logic for Units Conversion (4 layers)
WORK_ORDER.cs - discontinued ConvertUsagekQty - replaced with GetMultiplierConversionFactor
(Refactored SHIPPER_LINE with this change) 
Incorporated 901.1004 fix for NULL Part  / Scale = 0
LABOR_TICKET - Auto issue logic - 3 levels (RQ, Default Warehouse, Default Part) 


--Added comments for Defect 975 - PURC_ORDER_LINE.cs, RECEIVER_LINE.cs"
Version 901.1004. Fix Defext #971 Recalcwo on work_order - requirement doesn't have a part_id.
version 901.1003 - Update work_order to use scrap percentage for type S(start) as well as E(end) and make sure convert percentage to decimal in calculation.
"SBO - Auto Issue / Auto Reporting
--Code was not inspecting both Tennant and Site Settings for Operation Resource (shop resource) 
--Setup QTY Complete was being defaulted to zero, should be same Good QTY as RUN LT
901.1002"
"Bug in RMA Creation - stepping on existing RMA ID for Single Site 
Defect#961"
Merged in branches for Defects 931 & 938
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:931] 
--ONTIME END OF INTEGRATION--

   - Default Orig Stage Rev ID when inserting Customer Order Lines"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otf:822] 
--ONTIME END OF INTEGRATION--

   - Support for Visual 9.0.1"
"900.1001 - Wolf SBO Issue 
Deviated QTY was not calculated correctly.  Operation.Bad QTY was not being updated properly for NON Labor Reporting Backflushing"
Final check-in - Assembly version changed to 900.1000
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:925] [otf:772] 
--ONTIME END OF INTEGRATION--

      - Scrap yield taken into account when creating Labor Tickets during backflush
      - Merge in Visual 9 implementation"
INVENTORY_TRANS AfterDatabaseInsert - Set SITE_ID before getting lt.AccountSettings so null reference error doesn't happen
"800.1106 - Wolf Fix

--Auto Issue was not taking into consideration Deviated / Bad QTY 
--Visual has an INI Setting [AutoIssueMaterialReq] which changes the behavior of the Labor Ticket Operation QTY (including deviated or not)

Burden Calculation has been modified to match Visual"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:919] [otd:920] [otd:921] [otd:682] 
--ONTIME END OF INTEGRATION--

    - Fix UM issue when Shipping Lines 
    - Fix null/empty SITE_ID error when saving Demand Suppy Links on Customer Order Line
    - Use Customer Pricing instead of CUST_PRICE_EFFECT when getting default Unit Price on Customer Order Lines
    - Populate Contact information on Customer Orders"
"1105 Version
Wolf Modifications for Auto Issue
++Added Extension Methods for Default Nullable Decimal (Default 0 and Default 1) - If Null return Zero
++Added GuptaHelper for Rounding Rules - Sal Functions (that quite frankly suck!)
Units Conversion Logic - By Part with fall through logic to generic conversion"
"Merge from defect909_v800.906 branch
Use DateTime.Now instead of DateTime.Today when creating a Notation to avoid a PK violation.
Defect 909 - SBO v800.906 is the original patch release"
Modification to Receivable to allow "Array Of" shippers to pass in....used parms to keep single Shipper compatibility
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:708] 
--ONTIME END OF INTEGRATION--

  - Support for Shipping with Delivery Schedules"
Merge solution for Defect #849. Update PrepareNewLine to copy location/warehouse info to shipper_line.
Defect 879:  ACT_MATERIAL_COST rounding Fix on Inventory Transactions when Labor Tickets are created
Defect 875 - test for Calling Assembly directly in each constructor. Don't "new" another constructor because the calling assembly is SBO and the license check will pass in a web service scenario.
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otf:718] 
--ONTIME END OF INTEGRATION--

   - Basic functionality for BOL (Lines, Shippers, Foreign Keys, defaults, saves, updates, deletes)"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otf:719] [otd:823] 
--ONTIME END OF INTEGRATION--

  - Add NAME to AddressInfo class and use in FormatedAddress method in SHIPPER
  - AR Creation - GL Default: User Input -> Customer default -> Interface"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:871] 
--ONTIME END OF INTEGRATION--

   - Incorrect distributions when creating vouchers - MORE WORK NEEDED

Revision bump to 800.1104"
"v800.1103 - Labor Ticket (Kimber defect 863)
Materials don't get auto-issued if on the top OPERATION and one of the other OPERATIONs on SUB_ID 0 is not Auto-Reporting Labor.
Don't override RESOURCE_ID on auto-reported OPERATIONs.
Don't Auto-Issue Obsolete parts.
Handle SingleSite Location and Warehouse override for material auto-issue."
"Receiver Line - Missing INV_RECEIPT_DIST record

Changed code from

dsl.RECEIVED_QTY += RECEIVED_QTY.Value;

to

INV_RECEIPT_DIST ird = new INV_RECEIPT_DIST(Database);
                        ird.INV_TRANS_ID = InventoryTrans.TRANSACTION_ID;
                        ird.QTY = RECEIVED_QTY;
                        ird.DEMAND_SUPPLY_ID = dsl.ID;
                        ird.Save()"
Fixes Defect #859. Don't always update rowstate to unchanged while initializing underlining arrays (e.g. shipper_lines).
Defect 831 - added code to delete cust_line_binary and cust_order_binary
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:851] 
--ONTIME END OF INTEGRATION--

   - Fix Payable Line load error

Revision bump to 800.1100 (new release will follow this commit)"
"Back revision 4791 from trunk (Part 1 of 2 to branch contact changes)
--Copy from Version 4790"
Modified contact processing to closely resemble visual.
"Cleanup work.
Wrapped all references of Site_ID with #if MultiSite... #endif
Modified error messages to relate to object in error."
Typo
"Partial Check-in - Pending Version 800.1005
--Wolf Incident IN-02862 / Defect 840 LT.Hourly Cost is incorrect 

--Added logic for Hourly Cost based on Costing Method (Standard uses Shop Resource / Actual uses Employee)

Incorporated an AccountingSettings class that loads the settings regardless of Single / Multi Site"
"Defect 838 Backflush Location not correct
Defect 839 Backflush part qty's incorrect
Defect 840 labor_ticket.hourly_cost does not match visual
Defect 841 Labor_ticket.Resource_id cannot be entered (overridden)"
"SBO - Refined Currency Exchange
--If the currency matches the functional currency, return Buy / Sell = 1"
"SBO - Purchase Receipt Currency Modifications

--Added Site to Receiver
--Added ""dynamic"" CurrencyExchange lookup (current rate based on Receipt Date)
--Changed IT Material Costs & RL Unit Price to use the CurrencyExchange rather than PO Sell / Buy Rates

--Incident / Defect links
"Hot fix release 800.1002

--Created MathRoundAwayFromZero in BaseClasses
RECEIVABLE
--reverted to original ceil to scale function found in 800.1000 version....which was really Math.Round (Away from Zero)
--Refactored GL Interface to use common theme & mapping switch statement
--SalesTax calculation (calculate and round on each line - consolidate taxes after rounding)"
"Refactored CeilToScale
--Removed several duplicate occurrences
(INVENTORY_TRANS, LABOR_TICKET, PAYABLE, PAYABLE_CURR, PAYB_LINE_CURR, RECEIVABLE, RECEIVABLE_CURR, RECEIVABLE_CURR, WORK_ORDER)
--Moved to BaseClasses.cs

INVENTORY_TRANS (Logic Changes)
--Modified CURR logic to create CURR on EVERY Purchase Order Transaction
--Added an Un_rounded variable (for material cost) to carry through 2 INV TX records (Purc Receipt --> Material Issue)
--Verified logic on COSTS are not Ceiling to Scale but rather Round to Midpoint

RECEIVER_LINE
--Modified IT creation to use landedPrice (Sell Rate * Buy Rate * Unit Price)
--Modified Actual Material cost to use Trade Discount Rate logic  (along with landedPrice)
--DSL Logic (Create Material Issue & Dist)

**Changes applied to 800.1000 release version**

Axosoft Defect
"Revision jump to 800.1000.*

Final check in before release"
"FKEY0133 DELETE CASCADE Problem 
--Defect 787"
Fix divide by zero (axo defect: 781)
"Code change on AR Receivable Creation (from Packlist)
--Terms needs to source from Customer Order

**This modification will roll into the next ""release version"""
"Burden in the Material column fix. Put all cost vars in the same order to avoid confusion: Material,Labor,Burden,Service...
Build is 800.903.6078.27963"
"Main fix is in SHIPPER_LINE - handle Linked CO_PRODUCT auto Receipt upon shipment including making INV_RECEIPT_DIST and INV_TRANS_DIST entries. These entries fire triggers that do qty calcs on DSL.
Mods to INVENTORY_TRANS are to create proper INV_TRANS_CURR entries.
This matches up with version 800.903.6075.27918"
Make sure all records written to inventory_trans has a transaction_id (i.e. non part trans) and check receiver_line for null PURCHASE_UM before accessing. (ljc)
"Add the method AddDBHandler() to allow a hook into the [Before|After]Database[Insert|Update|Delete] events without having to jump through hoops with reflection at the application level.
The calling interface is purposely cryptic to keep SDK user from using this feature. It is really an internal convenience function for Synergy use.
Related to OnTime Feature 661 and Incident IN-02324."
"Create new feature for OnLoad and OnSave events on all SBO objects. Related to OnTime Feature 661.
Set SBO version to 800.901.*.* (new version scheme)."
Set SBO version to 0.0.*.* as interim version until next release.
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:746] 
--ONTIME END OF INTEGRATION--

   - Inventory Transactions created from Receiver Lines use costs from Part when using Standard Costing"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otf:674] 
--ONTIME END OF INTEGRATION--

   - Use CustomList for Quote Lines and Quote Prices so SBO flags object as added or modified when only items are being added to the list (Lines and Prices)"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:740] 
--ONTIME END OF INTEGRATION--

    - ShipAll method is back (SHIPPER.cs)"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:728] 
--ONTIME END OF INTEGRATION--

 - Do not create Work Order receipt during SHIPPER.PrepareNewLine unless Supply Type is ""WO"" (Work Order)"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:660] 
--ONTIME END OF INTEGRATION--

  - Oracle fix when saving Specs (pad string value with space)"
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:731] [otd:734] 
--ONTIME END OF INTEGRATION--

   - Add proper VAT defaults when VAT_ENABLED and creating order lines and invoices
   - FIXED_CHARGE not added to TOTAL_AMOUNT during PAYABLE save"
Remove ReleaseKit - does not belong here
Added ReleaseKit for v8.0.0.7
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otf:664] 
--ONTIME END OF INTEGRATION--

 - Add reference designator(s) added to loaded REQUIREMENT object

AssemblyInfo bumped to 8.0.0.7"
Changing AssemblyInfo to 8.0.0.6
Set "Generate Serialization assembly" to Auto (default setting). It was checked in as "On" by mistake on previous commit.
Handle Timeout check better to avoid a "first chance exception" condition for every DB Command reference.
"Performance update - ala Kimber patch.
Make the schema classes maintain a static list of field definitions. Only instantiate each class once and on demand per application run."
"--ONTIME INTEGRATION, DO NOT TOUCH!--
[otd:725] [otd:726] 
--ONTIME END OF INTEGRATION--

   - Throw exception if shipping using a date from a closed period
   - Inventory Transaction date for shipment lines match the shipping date 


Minor - AssemblyInfo.cs Assembly version changed to 8.0.* for above hot fix change"
"VE_SingleSite.csproj changes to support merge/linking

AssemblyInfo.cs changed to support single assembly version for both SingleSite & MultiSite"
"Apply Schema mod that excludes INTRASTAT_AMOUNT from SHIPER_LINE and RECEIVER_LINE by running the CodeGen project's solutions.
Give up on trying to get rid of the ""Service Reference"" directories and add then to the repository as VS will just recreate these empty folders every time."
"Add COLUMN_NAME functionality to the EXCLUSIONS table for XML Schema generation.
Update the XML Schema files that now exclude INTRASTAT_AMOUNT from SHIPPER_LINE and RECEIVER_LINE. 
These columns are sometimes not in the DB - depends on how the DB was created and upgraded over its history."
Single-Site Integration / Links
"Split Multi and single project dirs for linking to work
clean up links in SS project to exclude Multi-only override classes"
Clean-up - remove MultiSite files that got into SingleSite dir
Split Multi and single project dirs for linking to work - output SingleSire Schema and CodGen to VESingleSite dir instead of VE dir.
Split Multi and single project dirs for linking to work
Split Multi and single project dirs for linking to work
Split Multi and single project dirs for linking to work
Split Multi and single project dirs for linking to work
Split Multi and single project dirs for linking to work
Split Multi and single project dirs for linking to work
Split Multi and single project dirs for linking to work
Split Multi and single project dirs for linking to work
Split Multi and single project dirs for linking to work
Split Multi and single project dirs for linking to work
Split Multi and Single Site project dirs so we can link across projects. they need to be in separate directory trees for linking to work.
"SBO Multi Site - Version 8.0.0.3

Auto Reporting Logic Change
--Create ""Setup"" Labor Ticket
--Changed run costing to calculate from Operation (vs Shop Resource)

Modified 'ReleaseKit' XCOPY routine, moved to Solution Directory (from Project Dir)"
"Accounts Payable (Version 8.0)
--Added Payable / Payable Line Delete logic
--Added Accounting Period test on Payable creation"
"Multisite - Visual 8

--Modifications for WO Recalc to incorporate Dimension Expressions
--Bug fix on Labor Ticket to support Auto Issue (missing Site ID)


--XCOPY Scripts to build 'Release' kit folder"
"Order Matters - add the Column Number to the BO_SCHEMA table so we can sort on it when generating the XML schemas.
Re-generate the CodeGen classes so that the PKs are in the correct order in all the constructors. (36 MultiSite classes affected)

Get the SingleSite Code Gen files updated too now that we have the Oracle and SQLServer 700 schemas so we can start on the SingleSite phase."
Oracle 800,712, & 700 added (no 711 yet)
"SBO 8.0 MultiSite Alpha Release.

BOB.sql will create BOB from scripts to detach the SQL Server version from the equation.
Clean schema build for 7.0.0, 7.1.1, 7.1.2, & 8.0.0
Remove 7.1.0 from the projects.
Support for COM invocation added to templates (LoadByA and LoadLikeA methods) and DatabaseConnection constructors."
"Removal of SchemaDefinitionLoader class from SchemaDefinitionLoader.cs
Removal of Crypto.cs
Added methods from Crypto.cs to DatabaseConnection.cs
Fixed licensing in DatabaseConnection.cs
Added Try/Catch block around DBVersion Load to let user know it's not a Visual Database
added Try/Catch block around Schema loader to let user know this version of Visual isn't supported"
Test of Project Locker Commit - just adding a few comments
"Fix target and namespace in CodeGen projects for consistency
Adjust Templates/SRBOB - replace ""_"" with <PREFIX> tag for the cases where a column has the same name as its table and then use 2 underscores to prefix these columns. 
The Visual 8 tables with this condition are: BUFFER_STATUS, DIMENSION_DESC, MACRO, & QUERY.
Add XML.csproj - somehow its was never checked in."
Remove the unused "Service References" ItemGroup so we stop creating the Service Reference directory in the local copy.
"Consolidated DataaseConnection constructor (takes in authentication url or null)

Add logic to load appropriate schema file based on database engine"
Missing 'MultiSite' and 'SingleSite' conditional compile symbols for a couple of build configuration (platform/Release)
"Move 9 files to VE\Common directory from the VE directory for organization.
Common is in the Multi/Single Site context in this case - these files are the foundation classes for both."
"THE BIG ONE - Reorganization of SBO including SRBOB and how the CodeGenerated tools work.
One solution for the CodeGeneration w/multiple projects by platform/version and one solution for SBO which has two projects - Single and Multi Site."
Move SRBOB from SBO_Util to CodeGenTools

Need to have CodeGeneratedFiles under VE since they are in this VS Project.
"Monolithic SBO V71 build.
Need to move CodeGeneraqtedFiles under VE via RepoBrowser (see next version)."
"SBO - Added Missing Database Connection object
--User Credentials"
"SBO - Added Missing VE Table Objects 
--New Visual 8 Tables"
"SBO Startup Files

Baseline from OLD Revision 107"
"SBO Startup Files

Baseline from OLD Revision 107"
"SBO Startup 

--Revision 107 from the OLD Repository Source
"SBO Standard SVN Folder Creation

***Entry made with SVNHelper.exe***"

    • Related Articles

    • WM-Synergy Business Objects SDK Information

      WM-Synergy Business Objects WM-Synergy Business Objects, SBO, is a comprehensive transaction library built on the both the .net standard and .net framework platforms. This library allows the developer to quickly read/write/update transactional data ...
    • Macro Server - Release Notes

      v1100.1001 2025.05.11 (Beta Release) - Add support for editing Visual ERP Macros - VTG.Loader.dll is now using Framework 4.8 - Update supporting nuget packages to latest release. - VTGMACMT.exe has been renamed to MacroEditor.exe v1100.1000 ...
    • Shipper Connect - Release Notes

      "DatabaseConnectionUI: Fix Server not always being disabled for Oracle DatabaseConnectionUI & DefaultDatabaseConnectionUI: Ignore case for string compares FrmMain: Eliminate try/catch for alias" Add MacroStub.vms to the ClientLoader Project Macro ...
    • Synergy/Avalara Tax - Release Notes

      v1100.1003 2025.05.11 Add more diagnostic to validate the shipping address sent mod to SRI Macros SRITAX/SRITAXC to better handle an empty Avalara return data packet Add <line1><line2><line3> to the request packet information for traceability in ...
    • DERP - Release Notes

      1100.1003 Released 2025.04.16 AccountsPayableService: Added checks in header terms from vendors to only use the vender defaults if the header data was not supplied in the payloadSalesOrderService. ShipToAddrNo was added to the return object to ...