NetSuite - Generating Multiple Sales Orders from one Estimate (aka Quote) - netsuite

Is it possible to generate two (or more) Sales Orders for one Quote/Estimate in NetSuite?
When I ask if it's possible I mean without doing everything manually in SuiteScript.
Specifically we have a custom field added to the Opporutnity & Estimate transaction called custcol_hauler_rate and there are firm business rules disallowing a Sales Order to be generated with more than one distinct hauler rate.
I was hoping that there was a way to transform a Quote using a "filter". If I knew there were two distinct haul rates, say $10/ton and $15/ton, than in SuiteScript I could perform two transform statements one for the $10 items and one for the $15 items. This sounds too good to be true.
The number of distinct hauler rates on a Quote is usually one, but on it could be half a dozen so if that matters. Otherwise I am leaning towards splitting out the Quote using copy and plucking out items from the copied versions.

You can transform a single Quote to Order multiple number of times. Without SuiteScript it wont be possible.
I would suggest write your own button using beforeLoad user event script.

There is no built-in way to do this.
I'm not sure you can transform a quote multiple times. I'd test that first.
You can use nlapiCopyRecord on the quotes though and filter out items by hauler rate.

Related

Bloomberg Security List Generator

Assume that I have a list of bonds for various deals. However, I only know, e.g., the ISIN (alternatively security name or deal name) of a particular bond (that is part of a given deal). However, I do not know how many securities belong to a given deal. For example, the "HERME 12 Mtge" deal includes 5 different securities (i.e., ISINs), but I only know one particular ISIN (e.g., XS0271028838) within that deal.
My idea is to use the information (e.g., ISIN or deal name) from that specific bond to get all ISINs or security names within a specific deal. I end up with a list of multiple deals (orange) and should have an additional list of securities within each deal (blue) as shown in the figure below.
I know that in the Bloomberg terminal I can see how many securities are covered within each deal using the Collateral and Structure and VAC View All Classes functions. Since this is very tedious for a large number of deals, I would like to automate this process using the Bloomberg Excel add-in.
In fact, it would be enough to achieve this for one deal, because then I could use a VBA procedure.
One way to achieve this is to use the BQL function, and search the debt universe for any securities that have the MTG_DEAL_NAME matching the deal you are after.
So, a 2-step process,
Take the ISIN you have, and get the MTG_DEAL_NAME field via BDP(): =BDP(C2 & " Mtge","MTG_DEAL_NAME")
Use BQL to search for any securities that have that deal name: =BQL.Query("get(id_isin()) for(filter(debtUniv('ALL'), mtg_deal_name == '" & C4 & "'))", "showids=false", "showheaders=false","array=true")
NB. I've used the dynamic array version of BQL (array=true), so you can simply pass this list to another function.

Multi select employees in Employee Time Activities

I was trying to enable multi-select for Owner in Employee Time Activities and wanted to try based on below article.
https://asiablog.acumatica.com/2018/01/multi-select-selector.html
Then override view like below:
https://asiablog.acumatica.com/2017/11/sql-in-operator-in-bql.html
However, after I added ValidateValue = false in field:
I am getting this error.
I looked at the custom attribute and I don't think it could be replaced with anything keeping the same implementation.
So, is there any other way I can accomplish multi select feature to allow display Employee Time Activities for selected employees at once besides the ideas mentioned above?
Thanks.
Your primary issue is that DimensionSelector is different than Selector.
Secondary thing to keep in mind that when you do Multiselector you would need to update the field that holds the values to have a longer length. The way a multiselector works is that it stored the saved values as a ; (semicolon) separated string. so if the field was 10 long you would want to expand to whatever you expect the max number of selected values would be, e.g. 40 would be 480, 40x10 + 40x2, 10 being the original size, 2 being a semicolon and space. (hope that makes sense :) )
Next you would have to update all the functional business logic to then parse that string and loop each, in this case, employee for the functions.
I am speaking very generically here. So not sure what you're actually attempting to do here, but one would assume that if you were selecting multiple employees you would want records to reflect accordingly.

Crop order scheduling in excel

I am looking for some advice, I have a small micro green business and I have an excel sheet that breaks down the seeds, seed batch amount required, yield etc and so on.
I want to create a tab where I can input a customer order, I then want excel to schedule that order based on the information contained above in a calendar format on a tab.
I also want excel to calculate the amount of seed required number of trays and assign the tray a number. All trays are number in this format "A123, A124, A125" etc.
I'm also keen for excel to then assign the seed batch to the order and a tray number to the order.
Firstly is this possible, I've used excel a fair bit from my previous work experience but this is quite new for me and I am keen to learn so if someone could point me in the right direction on a possible method and what I should be looking at!
It sounds like you are looking for a data(base) structure for this challenge. Yes, that could be done in Excel, some VBA skills will probably come in handy if you want to achieve it automatically. As a first step, you could e.g. set up something like this:
Mockup of a data structure
So you would at least need one table where you enter your orders, one list of trays and one table where you link your incoming orders to the trays. You might need more columns than I added in my mockup.
Hope that gets you started

Spotfire DenseRank by category, do I use OVER?

I'm trying to rank some data in spotfire, and I'm having a bit of trouble writing a formula to calculate it. Here's a breakdown of what I am working with.
Group: the test group
SNP: what SNP I am looking at
Count: how many counts I get for the specific SNP
What I'd like to do is rank the average # of counts that are present for each SNP, within the group. Thus, I could then see, within a group, which SNP ranks #1, #2, etc.
Thanks!
TL;DR Disclaimer: You can do this, though if you are changing your cross table frequently, it may become a giant hassle. Make sure to double-check that logic is what you'd expect after any modification. Proceed with caution.
The basis of the Custom Expression you seem to be looking for is as follows:
Max(DenseRank(Count() OVER (Intersect([Group],[SNP])),"desc",[Group]))
This gives the total count of rows instead of the average; I was uncertain if "Count" was supposed to be a column or not. If you really do want to turn it into an average, make sure to adjust accordingly.
If all you have is the Group and the SNP nested on the left, you're done and good to go.
First issue, when you want to filter it down, it gives you the dense rank of only those in the filtered set. In some cases this is good, and what you're looking for; in others, it isn't. If you want it to hold fast to its value, regardless of filtering, you can use the same logic, but throw it in a Calculated column, instead of in the custom expression. Then, in your CrossTable Aggregation, get the max of the Calculated Column value.
Calculated Column:
DenseRank(Count() OVER (Intersect([Group],[SNP])),"desc",[Group])
Second Issue: You want to pivot by something other than Group and SNP. Perhaps, for example, by date? If you throw the Date across the top, it's going to show the same numbers for every month -- the overall numbers. This is not particularly helpful.
To a certain extent, Spotfire's Custom Expressions can handle this modification. If you switch between using a single column, you could use the following:
Max(DenseRank(Count() OVER (Intersect([${Axis.Columns.ShortDisplayName}],[Group],[SNP])),"desc",[Group],[${Axis.Columns.ShortDisplayName}]))
That would automatically pull in the column from the top, and show you the ranking for each individual process date.
However, if you start nesting, using hierarchies, renaming your columns, or having multiple aggregations and throwing (Column Names) across the top, you're going to start having to pay a great deal to your custom expression. You'll need to do some form of string replacement around the Axis.Column, or use expression instead of Short Names, and get rid of Nests, etc.
Any layer of complexity will require this sort of analysis, so if your end-users have access to modify the pivot table... honestly, I probably wouldn't give them this column.
Third Issue: I don't know if this is an issue, exactly, but you said "Average Counts" -- Average per day? Per Month? When averaging, you will need to decide if, for example, a month is the total number of days in month or the number of days that particular payor had data. However you decide to aggregate it, make sure you're doing it on the right level.
For the record, I liked the premise of this question; it's something I'd thought would be useful before, but never took the time to try to implement, since sorting a column or limiting a table to only show the top 10 values is much simpler

Expression Engine - How do I randomly display one of the last seven entries?

I would like to randomly display one of the last seven entries from a particular channel. I tried using offset="" but that happens to be exactly the opposite of what I need. I also considered using a date option: only show entries after a certain date, but that would only last for a while before it had to be modified.
Any serious suggestions will be seriously considered.
Thanks.
There's really no great way to do this natively with expressionengine.
Check out the AB entry ids addon. here's a specific example that should be what you're looking for: http://www.addonbakery.com/docs/ab-entry-ids.html
Just add orderby="random" to the nested channel entries tag pair and limit the entry ids query to 7.
http://devot-ee.com/add-ons/ab-entry-ids

Resources