Tuesday, February 9, 2010

From the Newsgroups: Multicurrency POP Receipts

Welcome to another weekly edition of the new From the Newsgroups blog entry. This week's topic revolves around Multicurrency POP Receipts and a feature available in GP. As usual, no names will be given out, just the question and the answer.


Q: Functional currency is CAN [Ed: Canadian Dollars]. Item has a receipt that was for qty of 6000 each at .62 each USD currency. Vendor is setup as a US vendor. In the fifo layers it shows a receipt for 5999 at .62 each then another line for a qty of 1 at $12.57. Why is the system showing two lines for this receipt and breaking out the exchange all in one line. The exchange should spread over the qty of 6000 not qty 1.

We know there is an issue with split receipts when the item has more than 2 decimal points or there is landed cost involved. That is not the case here. This appears to be because of the exchange rate.

The response is as follows:


A: Good Day.

Thank you for using Forums.

With your exchange rate, it would appear that you have 6000 qty at an extended cost of $3731.95. Is this correct?

If so, the way GP handles a situation where the qty is not evenly divided into the extended cost is to produce a split receipt. The 'logic' behind it takes as many qty at the 'unit cost' as possible, and then puts the left over amount on the last single qty. This is the way this has worked as long as we've been using split receipts.

This is not so much a matter of putting the 'exchange amount' on one qty, but rather that we can't spread the extended cost over the 6000 qty evenly. $3731.95 divided by 6000 is .6219916666666666666 repeating. We have to use some mechanism to have 6000 qty in our system at total cost of $3731.95. The method we use is a split reciept of 5999 @ .62 and 1 @ 12.57. This is standard GP functionality and has been for many versions.

If you have some suggestions on doing this in a different manner, please feel free to enter a product suggestion so that it can be reviewed for possible future releases.

Thanks!
Some of the features in GP are simply hidden to the naked eye unless you are dealing with a number of situations day in and day out. Multicurrency is one such situation.

Until next post!

MG.-
Mariano Gomez, MIS, MCP, MVP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com/

IM - How to group Integration Manager transactions based on transaction date

Just recently, I fielded a question where the user wanted to group a number of customer invoice transactions in a file based on the invoice date. The file happened to contain invoices downloaded from the billing system in a date range, for example 02/01/2010 - 02/05/2010. They wanted the resulting transaction batches in GP to be something like,

AR02012010
AR02022010
AR02032010
AR02042010
AR02052010

This would facilitate analysis by day and to make sure control totals matched those created on a daily basis.






The solution involves adding a field script to the batch ID field which in turn reads the transaction date field from the source query and forms the new batch ID with that information:




Very simple, but useful script. Keep in mind that you must enable the option to Add Missing batches for the integration as shown below:



When the integration is executed, it will create as many AR batches in Microsoft Dynamics GP as unique transaction dates there are in the file.

Until next post!

MG.-
Mariano Gomez, MVP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com/

Monday, February 8, 2010

"Advanced Excel for Microsoft Dynamics GP" Training

My friend, MVP Mark Polino is hosting a 2-day class from March 1 - 2, 2010 at the IBIS, Inc., offices in Norcross, Georgia (20 minutes north of downtown Atlanta). Mark promises some blood after you leave this class as nothing will hold you back anymore from connecting Microsoft Dynamics GP and Microsoft Office Excel -- not my words!

Take advantage of this unique opportunity to get some training from one of the best in the business, so click here for more information.

Until next post!

MG.-
Mariano Gomez, MVP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com/

Saturday, February 6, 2010

See you at Microsoft Dynamics Convergence 2010

Great News! I am going to my first Microsoft Convergence conference as a presenter and will be presenting two concurrent sessions (more on this soon) with my partner in crime, David Musgrave. David and I presented together back in November at the Microsoft Dynamics GP Technical Conference 2009 and it was a great success. So now, at the Microsoft Dynamics Convergence 2010, we get a chance to do it again.

Here are some Microsoft Dynamics Convergence resources to start gearing up for April:

  • Microsoft Convergence 2010 Atlanta Registration Site - Click here

  • David Musgrave's Convergence 2010 announcement article - Click here for more info.

  • If you did not get a chance to see MVP Mark Polino at Convergence 2009 in New Orleans, then no worries. He is back with his "50 Tips in 50 Minutes" session this year in Atlanta - Click here for more info.

  • If you are interested in volunteering opportunities at Convergence you need to watch the following video for more information.


  • http://www.youtube.com/watch?v=9gWgaw_CXZM

See you in my backyard.

Until next post!

MG.-
Mariano Gomez, MVP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com/

Friday, February 5, 2010

Microsoft Dynamics GP 2010 - International Enhancements

After spending a week in Costa Rica enjoying the spectacular beaches and the fabulous weather in San Jose (although my purpose in San Jose was to deliver Microsoft Dexterity training), I thought it was just appropriate to blog about the international features sported by Microsoft Dynamics GP 2010. The bottom line, there are quite a bit of enhancements for the international community, so let's get right to them:

1. VAT Daybook. You will be pleased to know that the VAT daybook has become a feature available for installation to all countries. Since value added taxes are very common across the globe with most countries requiring pretty much the same tracking and reporting capabilities, the good folks at MS have decided to make it available to everyone.

For you folks up in Canada, the VAT Daybook can be used to generate the Canadian GST/HST return in electronic format. You can set up the reporting periods for the return as specified by the tax Canada Revenue Agency. You can assign the tax detail IDs to consider for each line of the return. You can set up the default claim percentage for input tax credit for each tax detail ID. You can change this percentage for each transaction before you generate the return. You can resubmit the return after making changes, if required.

Vous serez heureux de savoir que le fil de la journée de la TVA est devenue une caractéristique disponible pour l'installation de tous les pays. Depuis la valeur ajoutée les impôts sont très courants dans le monde entier avec la plupart des pays ayant besoin d'à peu près le même suivi et de reporting, les braves gens qui habitaient les États membres ont décidé de le rendre accessible à tous.

Pour vous, les amis au Canada, le fil de la journée la TVA peut être utilisé pour générer la TPS canadienne / TVH en format électronique. Vous pouvez configurer les périodes de déclaration pour le retour tel que spécifié par l'impôt du revenu du Canada Agence. Vous pouvez attribuer le détail impôt identifiants à considérer pour chaque ligne de la déclaration. Vous pouvez configurer le pourcentage par défaut de réclamation de crédit d'impôt d'entrée de chaque détail d'identification fiscale. Vous pouvez changer ce pourcentage pour chaque transaction avant que vous produisez la déclaration. Vous pouvez renvoyer le retour en cas de modifications, si nécessaire.

2. Fixed Assets Enhancements. For you folks in Australia and New Zeland you will be pleased to know that Fixed Assets Enhancements is a tool that allows you to create a depreciation method to calculate depreciation for low-cost and low-value assets. This product is automatically installed when you choose to install the Fixed Assets Management product for Australia or New Zealand installations.

3. Export Financial Data. Export Financial Data is a tool that allows you to export the ACCON account balance report for the users in Belgium and the ETAFI account balance report for the users in France. These reports are exported to a format that can be imported by the respective legal authorities. This product is available for selection only for Belgian or French installations of Microsoft Dynamics GP.

Données Financières de L'Exportation est un outil qui vous permet d'exporter les soldes des comptes rapport Accone en Belgique, et le rapport solde du compte ETAFI pour les utilisateurs en France. Ces rapports sont exportés vers un format qui peut être importé par les autorités judiciaires.. Ce produit est disponible pour la sélection uniquement pour les installations belge ou française de Microsoft Dynamics GP.

4. "Principles of Data Access and Verifiability of Digital Documents". GDPDU is a tool that allows you to extract tax related data from Microsoft Dynamics GP based German legal requirements. You can send this data to the auditor for analysis before submitting the final report to the tax authorities.

You can choose to install this feature from the ...\DvdImage\Interntl\Products\ folder located within your Microsoft Dynamics GP installation package.

GDPDU - Grundsätze zum Datenzugriff und zur Prüfbarkeit digitaler Unterlagen -ist ein werkzeug, dass sie die steuerrelevanten daten aus Microsoft Dynamics GP lebenden deutschen gesetzlichen anforderungen zu extrahieren. Sie können diese daten an den abschlussprüfer für die Analyse zu schicken, bevor die vorlage des abschlussberichts an den fiskus.

Sie können wählen, um diese funktion aus dem ... \DvdImage\Interntl\Products\ in ihrem Microsoft Dynamics GP installationspaket befindet.

Now, you will want to excuse my French and German, but I did the best I could... now, go enjoy your new features!

Until next post!

MG.-
Mariano Gomez, MVP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com

Tuesday, February 2, 2010

New article on MSDynamicsWorld: MVP Victoria Yudin on "Taking charge of your own support"


"When I first started using Microsoft Dynamics GP almost twenty years ago... there were limited options for getting help"

MVP Victoria Yudin gives an account of her 20-year career history with Microsoft Dynamics GP and how the support landscape has changed over those years. She also gives out some important pointers on how to request help on newsgroups, forums, and even from Microsoft Dynamics GP Support. Be sure to check out her article over at MSDynamicsWorld.

Until next post!

MG.-
Mariano Gomez, MVP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com

Wednesday, January 27, 2010

From the Newsgroups: FRx XBRL

I am starting a weekly section called From the Newsgroups intended to bring some of the most intriguing questions and informative responses from the online technical community. To keep things relatively anonymous, no names will be given out... just the questions and the responses.

The series open with a question posted on the Partner Online Technical Community forum regarding FRx XBRL capabilities:

"I have a client who is working on converting FRx statements to the XBRL format. With service pack 11, we are able to use the 2009 taxonomies, which is great. She needs to submit her statements in XBRL format. There are a few questions that I cannot answer for her and am hoping someone can point me in the right direction.

1. XBRL format will not include calculated columns; XML format will. Is this a limitation of XBRL or FRx?

2. If FRx, can we use XML and then convert to XBRL? Can we export to Excel and convert to XBRL from there?

3. Any suggestions on the best way to view what the result will be from an XML/XBRL format before she actually sends the statements off."

The following is the answer given by a Microsoft support engineer:

"FRx Reporter can print basic XBRL reports and instance documents. Since the time XBRL support was added to FRx, the XBRL specifications have evolved and all required features are not available in FRx Reporter. The following list describes potential incompatibilities:

• FRx only supports monetary items. You cannot generate decimal, pure (ratio/percentage), or string/text data.

• FRx does not support footnotes.

• FRx does not provide a way to enter the entity scheme and identifier that are a required part of the contexts in an instance document. Generic information is generated, and these items will have to be manually changed afterward.

• FRx generates an instance document for each unit of the reporting tree. This may not be what you want. Frequently, all reports should be combined into a single document.

FRx does not support CALC columns when you use the XBRL output. Only GL and Forecaster column types will export data. I wasn't able to find a way to convert an Excel file to XBRL. Since FRx cannot export CALC columns to XBRL format, you'd have to generate the report to another format, like Excel. It may be possible to convert that to XBRL, but that would be something outside of FRx support."

For more information on XBRL take a look at the following resources:

XBRL.org - Click here
XBRL Compliance Goes Worldwide: Get a Head Start with Microsoft Dynamics GP Analytical Accounting and Microsoft FRx - Click here (registration required)

Until next post!

MG.-
Mariano Gomez, MVP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com/

Tuesday, January 26, 2010

Changing the Hyperspace property for a lookup button added with Modifier

It sounds like some word out of Captain Kirk's vocabulary, but for Dexterity developers Hyperspace is a well known property that allows a Dexterity-based application to run the change script for a push button, i.e., a lookup button, without moving the focus from the currently-selected field. For example, you won't want the 'Customer Number' field on the Customer Maintenance window to execute it's change script before you have selected a customer from the Customer Lookup window as the lookup button is clicked... that's what Hyperspace does, it prevents such situations by keeping the focus on the 'Customer Number' field until a customer ID is returned from the lookup window into the field.

The problem is, this property is locked down for push button controls added with Modifier, and while you cannot edit the push button change script with Modifier, you may still want to trigger off such controls with Dexterity code. This is pretty common for customizations where you don't want to create an alternate versions of a GP form, but require a control placed directly on the GP form in order to call your own Dexterity code (see my article Developing Microsoft Dynamics GP hybrid integrating applications).

So, here is the workaround for changing the Hyperspace property of a push button control added with Modifier:

1. Add the push button control to your Modified window. In my example I will be using the sopCustomerItemMnt form. The following illustrates the changes made:



2. Save your modified window and return to Microsoft Dynamics GP. Open the Customization Maintenance window and locate the sopCustomerItemMnt. Click the Export button to export the modified window to a package file. The following is the content of exported package file:



= Form "sopCustomerItemMnt"
{
Datatypes
{
Datatype "Lookup"
{
Control "PushButton"
DefaultDown "00000"
DefaultMouseOver "00000"
DefaultUp "00000"
Prompt ""
PromptDown ""
PromptMouseOver ""
StaticType "Mixed"
~ItemImages
{
PictItem "00001"
{
Item "Field_Lookup_PB_Up"
}
}
}
Datatype "UPC_Code"
{
AllowOddLength "false"
Control "String"
Format ""
KeyableLength "31"
StorageLength "32"
}
}
Fields
{
Field "Lookup"
{
ArraySize "0"
Datatype "(L) Lookup"
LookupForm ""
PhysicalName ""
}
Field "UPC_Code"
{
ArraySize "0"
Datatype "(L) UPC_Code"
LookupForm ""
PhysicalName ""
}
}
Windows
{
= Window "sopCustomerItemMnt"
{
Fields
{
WindowControl "(L) Lookup"
{
Alignment "center"
Appearance "2D Border"
BackColor "System - Button Face"
Border "true"
ButtonStyle "GraphicOnly"
Cancel "false"
ControlType "PushButton"
Default "false"
Editable "true"
EndTransaction "false"
Field "(L) Lookup"
Font "System (generic)"
FontBold "false"
FontColor "System - Button Text"
FontItalic "false"
FontUnderline "false"
HyperSpace "false"
LinkedLookup "10002"
LinkedPrompt "0"
Pattern "(none)"
PatternColor "White"
PositionLeft "567"
PositionTop "186"
ResizeHoriz "StayLeft"
ResizeVert "StayTop"
SizeHeight "20"
SizeWidth "18"
TabStop "true"
Tag "10003"
Tooltip ""
UseUniqueHelp "true"
Visible "true"
ZOrder "81"
Zoom "false"
}
WindowControl "(L) UPC_Code"
{
Alignment "left"
Appearance "2D Border"
AutoComplete "false"
AutoCopy "false"
BackColor "System - Window Background"
Border "true"
ControlType "String"
DisableLookup "false"
Editable "true"
Field "(L) UPC_Code"
Font "System (generic)"
FontBold "false"
FontColor "System - Window Text"
FontItalic "false"
FontUnderline "false"
LinkedFormat "0"
LinkedLookup "0"
LinkedPrompt "10001"
Password "false"
Pattern "(none)"
PatternColor "White"
PositionLeft "408"
PositionTop "186"
ReadingOrder "LeftToRight"
Required "false"
ResizeHoriz "StayLeft"
ResizeVert "StayTop"
SavedOnRestart "false"
SetChangeFlag "true"
SizeHeight "20"
SizeWidth "160"
TabStop "true"
Tag "10002"
Tooltip ""
UseUniqueHelp "true"
Visible "true"
ZOrder "80"
Zoom "false"
}
WindowPrompt "10001"
{
Alignment "left"
Appearance "3D Highlight"
BackColor "System - Button Face"
Border "true"
Font "System (generic)"
FontBold "false"
FontColor "System - Button Text"
FontItalic "false"
FontUnderline "false"
Pattern "(none)"
PatternColor "White"
PositionLeft "328"
PositionTop "186"
ReadingOrder "LeftToRight"
ResizeHoriz "StayLeft"
ResizeVert "StayTop"
SizeHeight "20"
SizeWidth "80"
Text "UPC Code"
Visible "true"
ZOrder "79"
Zoom "false"
}
}
LastTag "10003"
}
}
}

3.Perform a search for "Hyperspace". Replace the property value from false to true. Save the package file. In the above sample package file content, I have highlighted the Hyperspace property in red.

4. Use the Customization Maintenance window to reimport the package file. This should be all! Now your lookup button's hyperspace property is set to true.

Warning: this method of changing the Hyperspace property of a push button is not supported by Microsoft and must be performed by a developer who understands the implications.

Until next post!

MG.-
Mariano Gomez, MIS, MCP, MVP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com/

What's new in Microsoft Dexterity 11.0

The excitement around Microsoft Dynamics GP 2010 could not be any higher. Traffic on my site has doubled since I began releasing information about the upcoming version, which is currently being beta tested by a number of partners and have even seen a customer gone live as reported by Inside Microsoft Dynamics GP. For past articles, click on the following links:

Microsoft Dynamics GP 2010 - Navigation Enhancements
Microsoft Dynamics GP 2010 - Security Enhancements

However, none of these application enhancements could have been possible without the hard work of the Microsoft Dexterity team, which brought the following enhancements of their own to version 11.0 of Dexterity:

IDE Enhancements


  • Enhancements to Report Writer - While a number of you still dredge the fact that there is still Report Writer, the bottom line is I believe there will be Report Writer for a while. There's simply too much code tied to Report Writer and way too many reports in the system to simply replace them all. So to compensate, my friends in the Dex team have significantly improved the rendering of report outputs in HTML format and have provided a way to create an XML representation of the report layout.

  • Context Menus - While this is nothing new in the Windows world and holds true for many other applications, it was a long overdue feature in Dexterity. Dexterity now supports right-click enabled context menus for windows, window fields, scrolling window lines and scrolling window fields. When a context menu is displayed, a script is run that allows commands to be added to the context menu. Here is a sample script:



  • local integer result;
    local integer command_tag;
    local integer view_menu_command_list;
    local integer context_menu_command_list;

    {Build the View submenu}
    view_menu_command_list = Command_GetTag(command View of form RESM_Explorer);

    {Only need to build this once. Unlike the context menu, it is not cleared
    automatically when the context menu action is complete.}
    if CommandList_NumCommands(view_menu_command_list) = 0 then
    {Large Icon}
    command_tag = Command_GetTag(command Large_Icon of form RESM_Explorer);
    result = CommandList_Add(view_menu_command_list, command_tag);

    {Small Icon}
    command_tag = Command_GetTag(command Small_Icon of form RESM_Explorer);
    result = CommandList_Add(view_menu_command_list, command_tag);

    {List}
    command_tag = Command_GetTag(command List of form RESM_Explorer);
    result = CommandList_Add(view_menu_command_list, command_tag);

    {Report}
    command_tag = Command_GetTag(command Report of form RESM_Explorer);
    result = CommandList_Add(view_menu_command_list, command_tag);

    end if;

    {Build the context menu}
    context_menu_command_list = Command_GetTag(command cmdListContextMenu);

    {Add the View sub-menu}
    result = CommandList_Add(context_menu_command_list, view_menu_command_list);

    {Separator}
    command_tag = Command_GetTag(command cmdSeparator);
    result = CommandList_Add(context_menu_command_list, command_tag);

    {Print}
    command_tag = Command_GetTag(command Print of form RESM_Explorer);
    result = CommandList_Add(context_menu_command_list, command_tag);

    As you can tell, context menus are based on command lists... same principle used for standard menu items.

  • Dexterity now sports a new Watch window, wich can be selected from the Debug menu in test mode.




  • The Script Debugger has a context menu in test mode. The truth is, I could not get this feature to work in my current build of Dexterity - 11.00.0206.000


SanScript Enhancements


  • run report statement now has the option to define a new XML export type. The constant defined for this operation is XMLFILE. The statement syntax is still the same:


  • run report report_name {with restriction boolexp}{sort by field{nocase}{descend}}
    {by key_name by number expr}{legends [string_expr_list array_index_list]
    {destination screen_boolean, printer_boolean
    {, export_type, export_name}}{
    printer printer_settings}


  • Similar enhancements have been implemented for the run report with name statement. You can also specify an XML export type.


  • run report with name report_name {with restriction boolexp}{sort by field{nocase}{descend}}
    {by key_name by number expr}{legends [string_expr_list array_index_list]
    {destination screen_boolean, printer_boolean
    {, export_type, export_name}}{
    printer printer_settings}{in dictionary product_ID}

  • The savefile() function has also been given the ability to save documents to XML format by using the XMLFILE constant.


  • local string path;
    local integer file_type;

    if savefile("Export file", file_type, path, "XML file (*.xml)*.xml) then
    call Export_XML_File(file_type, path);
    end if;



New Functions

File
File_GetSize()
File_GetTempDirectory()


File list
FileList_Add()
FileList_Count()
FileList_Create()
FileList_Destroy()
FileList_Get()
FileList_Remove()
FileList_ShowDialog()

File type
FileType_CanAppend()
FileType_FillList()
FileType_GetExtension()
FileType_IsValid()


MAPI
MAPI_DisplayReplyToDialog()
MAPI_GetAddress()
MAPI_IsLoggedOn()
MAPI_IsMailEnabled()
MAPI_LogOff()
MAPI_LogOn()
MAPI_ProfileGetAddress()
MAPI_PropertyListCount()
MAPI_PropertyListCreate()
MAPI_PropertyListDestroy()
MAPI_PropertyListGetValue()
MAPI_PropertyListGetValueByIndex()
MAPI_PropertyListSetValue()
MAPI_ResolveAddress()
*MAPI_Send()
*MAPI_SendDialog()


* Enhanced to support attachments, reply to lists, and properties not exposed through the MAPI function.

Path
Path_ParsePathFromPath()

Registry
Registry_DeleteKey()
Registry_DeleteValue()
Registry_GetProtectedString()
Registry_GetValue()
Registry_SetKeyValue()
Registry_SetProtectedKeyString()


Trigger
*Trigger_RegisterFocus()
*Trigger_RegisterFocusByName()


* Enhanced to support focus triggers on context menu events.

Until next post!

MG.-
Mariano Gomez, MVP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com/

Thursday, January 21, 2010

Microsoft Dynamics GP 2010 - Navigation Enhancements

After the Microsoft Dynamics GP 2010 Security Enhancements mentioned in my previous article, I wanted touch base on some of the enhancements to the overall navigation experience.

One of the first things that jump out right at you when you get to the desktop is the new Microsoft Dynamics Online Connect feature. Think of this feature as your window to the Dynamics Community. That's correct! Behind that window there are hundreds of thousands of other Dynamics GP users just like you. The problem? The Connect link seems to be down since sometimes yesterday, as of the date and time of publishing of this article. By the way, you can find the Connect site link (also known as the GP Role Center site) in the HomePage.xml file stored in your temp folder (%temp%).



You also have the ability to now view reminders as visual cues and multiple metrics on the page. I have to play more around with this feature as I was not quite sure I was able to get all metrics to be displayed at once.

The Navigation Pane will now only show the series buttons and associate lists for modules that are marked in the Registration window. Phew! This will certainly clean up the amount of options you have to sift through when working with your navigation lists.

You can now define and save a default lookup view for your master records by selecting the Set as Default View option from the View menu or using the right-click menu in the lookup window. The default view you select will be the view displayed when you open the lookup window the next time. You can set a default view for the following lookup windows:

  • Items lookup window


  • Accounts lookup window



  • Employees lookup window



  • Customers and Prospects lookup window



  • Salespeople lookup window



  • Vendors lookup window


The default view is saved on a per user, per company basis. The truth is, this functionality is not working as intended at this time. After I changed the sorting options and attempted to set these changes as the default value for my lookup window, the option appeared grayed out. I discussed this with MVP Mohammad R. Daoud who confirmed it in his new article titled Inside Microsoft Dynamics GP 2010 - Issues found so far.

All and all, in the above images you saw the right-click context menu, which leads me into the next navigation enhancement.

"You can right-click in a text or numeric field to see a shortcut menu. The shortcut menu contains options from the Edit menu" -- this, per the What's New help file, but I believe Microsoft felt short in the definition as, right-click enables more of a context sensitive menu, rather than just shortcuts and operates in a number of places. For example, in SOP, you are able to display not only the standard copy/paste options, but also the scrolling window insert and delete options.



There are a few more enhancements in this area that I would like to discuss, but they will be part of a future article as I will need Microsoft SQL Server Reporting Services to demonstrate a few of them.

Until next post!

MG.-
Mariano Gomez, MVP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com/