Code Snippets Examples - NetSweet/netsuite GitHub Wiki

I'm creating this page to share some code snippets that took longer to build due to lack of documentation and may be useful for everyone who will use this gem

Building Journal Entry Record with custom_field to add/upsert/update.

        lines = @results.map do |result_row|
          line = {
            account: { internal_id: internal_id('adjustment_account', result_row['account']) },
            memo: result_row['note'],
            department: {
              internal_id: internal_id('department', 'Finance')
            },
            klass: {
              internal_id: internal_id('order_type', result_row['order_type'])
            },
            custom_field_list: {
              custom_field: {
                script_id: 'custcol_fleaf_item',
                type: 'platformCore:SelectCustomFieldRef',
                value: {
                  internal_id: internal_id('item', result_row['item']),
                  type: 'platformCore:ListOrRecordRef'
                }
              }
            }
          }

          line[:debit] = result_row['debit_amount'] if result_row['debit_amount'].present?
          line[:credit] = result_row['credit_amount'] if result_row['credit_amount'].present?

          line
        end


        record_object = ::NetSuite::Records::JournalEntry.new(
          external_id: first_row['external_id'],
          memo: self.class.name.demodulize,
          currency: { internal_id: internal_id('currency', first_row['currency']) },
          tran_date: ::NetSuite::Utilities.normalize_time_to_netsuite_date(first_row['date'].to_time.utc.to_i),
          subsidiary: {
            internal_id: internal_id('subsidiary', first_row['subsidiary'])
          },
          custom_field_list: {
            custom_field: {
              script_id: 'custbody_wipfli_je_type',
              type: 'platformCore:SelectCustomFieldRef',
              value: {
                internal_id: internal_id('journal_entry_type', first_row['journal_entry_type']),
                type: 'platformCore:ListOrRecordRef'
              }
            }
          },
          line_list: {
            line: lines
          }
        )

Building Inventory Adjustment Record with custom_field to add/upsert/update.

        inventories = results.map do |result_row|
          internal_location_id = internal_id('location', result_row['location'])
          {
            item: {
              internal_id: internal_id('item', result_row['item'])
            },
            location: {
              internal_id: internal_location_id
            },
            adjust_qty_by: result_row['adjust_qty_by'],
            inventory_detail: {
              inventory_assignment_list: {
                inventory_assignment: [
                  {
                    issue_inventory_number: {
                      internal_id: internal_id('inventory_number', result_row['item'], internal_location_id: internal_location_id)
                    },
                    quantity: result_row['adjust_qty_by']
                  },
                ]
              }
            }
          }
        end

        record_object = ::NetSuite::Records::InventoryAdjustment.new(
          external_id: first_row['external_id'],
          memo: self.class.name.demodulize,
          tran_date: ::NetSuite::Utilities.normalize_time_to_netsuite_date(first_row['date'].to_time.utc.to_i),
          account: {
            internal_id: internal_id('adjustment_account', first_row['adjustment_account'])
          },
          subsidiary: {
            internal_id: internal_id('subsidiary', first_row['subsidiary'])
          },
          custom_field_list: {
            custom_field: {
              script_id: 'custbody_fleaf_reason_code',
              type: 'platformCore:SelectCustomFieldRef',
              value: {
                internal_id: internal_id('reason_code', first_row['reason_code']),
                type: 'platformCore:ListOrRecordRef'
              }
            }
          },
          inventory_list: {
            inventory: inventories
          },
        )