| Server IP : 216.92.14.13 / Your IP : 216.73.216.171 Web Server : Apache System : Linux vps4089.pairvps.com 5.15.0-190-generic #200-Ubuntu SMP Fri Aug 7 15:06:04 UTC 2026 x86_64 User : rmlac2fmr ( 1040637) PHP Version : 8.2.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/home/rmlac2fmr/public_html/Merchant2/4.00/ |
Upload File : |
<HTML><MIVA STANDARDOUTPUTLEVEL = "text, html, compresswhitespace">
<IF version LT 3.91>
<HEAD><TITLE>Miva Engine Version Mismatch</TITLE></HEAD>
<BODY BGCOLOR = "#ffffff">
<FONT FACE = "Arial, Helvetica" SIZE = "-1">
Miva Merchant requires the Miva Engine, version <B>3.91</B> or higher.<BR>
You are running version <B><EVAL version></B><BR>
<BR>
Please contact <A HREF = "http://www.miva.com">Miva Corporation</A> for upgrade information.
</FONT>
</BODY>
<EXIT>
</IF>
<MvCOMMENT>
|
| Miva Merchant v4.x
|
| This file and the source codes contained herein are the property
| of Miva Corporation. Use of this file is restricted to the specific
| terms and conditions in the License Agreement associated with this
| file. Distribution of this file or portions of this file for uses
| not covered by the License Agreement is not allowed without a written
| agreement signed by an officer of Miva Corporation.
|
| Copyright 1998-2001 Miva Corporation. All rights reserved.
| http://www.miva.com/
|
| $Source: /home/cvs/merchant/Merchant/merchant.mv,v $
|
| Prefix : MER-MER-
| Next Error Code: 7
| Next Text ID : 10
|
</MvCOMMENT>
<MvASSIGN NAME = "g.Data_Entry_Error" VALUE = 0>
<MvDO FILE = "lib/config.mv">
<MvASSIGN NAME = "g.Version_Mismatch" VALUE = 0>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ OpenDataFiles( g.Merchant_Version ) }">
<MvIF EXPR = "{ NOT l.ok }">
<MvIF EXPR = "{ NOT g.Version_Mismatch }">
<MvLOCALIZED NAME = "l.error" ID = "MER-MER-00001">
<MvLOCALIZED-TEXT LANGUAGE = "en-US">Miva Merchant has not been initialized. Please use the Miva Merchant Setup script to initialize the required data files.</MvLOCALIZED-TEXT>
<MvLOCALIZED-TEXT LANGUAGE = "de-DE">Miva Merchant wurde nicht initialisiert. Bitte benutzten Sie das Miva Merchant Setup-Skript, um die erforderlichen Datendateien zu initialisieren.</MvLOCALIZED-TEXT>
</MvLOCALIZED>
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Error( 'MER-MER-00001', l.error ) }">
</MvIF>
<MvELSE>
<MvDO FILE = "{ g.Library_Utilities }" NAME = "g.Session_ID" VALUE = "{ DetermineSessionID() }">
</MvIF>
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Library_DB }" NAME = "g.Store_Count" VALUE = "{ Store_Count() }">
</MvIF>
<MvIF EXPR = "{ l.ok }">
<MvIF EXPR = "{ len( g.Store_Code ) EQ 0 }">
<MvIF EXPR = "{ g.Store_Count EQ 0 }">
<MvLOCALIZED NAME = "l.error" ID = "MER-MER-00002">
<MvLOCALIZED-TEXT LANGUAGE = "en-US">No stores exist. Please use the administration utility to create one.</MvLOCALIZED-TEXT>
<MvLOCALIZED-TEXT LANGUAGE = "de-DE">Es sind keine L�den vorhanden. Bitte erstellen Sie einen Laden mit dem Administration-Dienstprogramm.</MvLOCALIZED-TEXT>
</MvLOCALIZED>
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Error( 'MER-MER-00002', l.error ) }">
<MvELSE>
<MvIF EXPR = "{ g.Store_Count EQ 1 }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Store_FindFirst() }">
<MvIF EXPR = "{ l.ok }">
<MvASSIGN NAME = "g.Store_Code" VALUE = "{ Stores.d.code }">
</MvIF>
</MvIF>
</MvIF>
</MvIF>
</MvIF>
<MvIF EXPR = "{ l.ok }">
<MvIF EXPR = "{ len( g.Store_Code ) }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Store_Open( g.Store_Code ) }">
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Module_Feature_STA }" NAME = "l.ok" VALUE = "{ Stats_Add_Hits( ) }">
</MvIF>
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Module_Find_ID( Stores.d.tax_id ) }">
<MvIF EXPR = "{ l.ok }">
<MvASSIGN NAME = "g.Store_Module_Tax" VALUE = "{ Modules.d.module }">
<MvASSIGN NAME = "g.Module_Store_Module_Tax" VALUE = "{ g.Module_Root $ Modules.d.module }">
</MvIF>
</MvIF>
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Module_Find_ID( Stores.d.currncy_id ) }">
<MvIF EXPR = "{ l.ok }">
<MvASSIGN NAME = "g.Store_Module_Currency" VALUE = "{ Modules.d.module }">
<MvASSIGN NAME = "g.Module_Store_Module_Currency" VALUE = "{ g.Module_Root $ Modules.d.module }">
</MvIF>
</MvIF>
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Module_Find_ID( Stores.d.ui_id ) }">
<MvIF EXPR = "{ l.ok }">
<MvASSIGN NAME = "g.Store_Module_UI" VALUE = "{ Modules.d.module }">
<MvASSIGN NAME = "g.Module_Store_Module_UI" VALUE = "{ g.Module_Root $ Modules.d.module }">
</MvIF>
</MvIF>
<MvIF EXPR = "{ ( s.time_t GE Stores.d.mnt_time ) AND ( Stores.d.mnt_time GT 0 ) }">
<MvASSIGN NAME = "l.ok" VALUE = "{ Error_Store_Closed() }">
<MvASSIGN NAME = "l.storeclosed" VALUE = "1">
<MvELSE>
<MvDO FILE = "{ g.Library_Utilities }" NAME = "g.Basket_ID" VALUE = "{ OpenBasket() }">
<MvIF EXPR = "{ NOT g.Basket_ID }">
<MvIF EXPR = "{ ( Stores.d.mnt_time GT 0 ) AND ( ( s.time_t + ( Stores.d.mnt_no_new * 60 ) ) GE Stores.d.mnt_time ) }">
<MvASSIGN NAME = "l.ok" VALUE = "{ Error_Store_Closed() }">
<MvASSIGN NAME = "l.storeclosed" VALUE = "1">
<MvELSE>
<MvDO FILE = "{ g.Library_DB }" NAME = "g.Basket_ID" VALUE = "{ BasketList_Insert( g.Session_ID, s.time_t ) }">
<MvIF EXPR = "{ g.Basket_ID EQ 0 }">
<MvASSIGN NAME = "l.ok" VALUE = "0">
</MvIF>
</MvIF>
</MvIF>
</MvIF>
<MvIF EXPR = "{ l.ok AND ( NOT l.storeclosed ) }">
<MvDO FILE = "{ g.Module_Version }" NAME = "l.isEnabled_cus" VALUE = "{ IsEnabled( 'CUS' ) }">
<MvIF EXPR = "{ l.isEnabled_cus }">
<MvIF EXPR = "{ BasketList.d.cust_id }">
<MvDO FILE = "{ g.Module_Feature_CUS_DB }" NAME = "l.found" VALUE = "{ Customer_Find_ID( BasketList.d.cust_id ) }">
<MvIF EXPR = "{ NOT l.found }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ BasketList_Update_Customer( g.Session_ID, 0 ) }">
</MvIF>
</MvIF>
</MvIF>
<MvASSIGN NAME = "l.pos" VALUE = 1>
<MvASSIGN NAME = "l.current" VALUE = "{ gettoken( g.Action, ',', l.pos ) }">
<MvWHILE EXPR = "{ l.ok AND ( NOT g.Data_Entry_Error ) AND l.current }">
<MvASSIGN NAME = "l.current" VALUE = "{ toupper( l.current ) }">
<MvIF EXPR = "{ l.current EQ 'NEW' }">
<MvASSIGN NAME = "l.ok" VALUE = "{ Action_New() }">
</MvIF>
<MvIF EXPR = "{ l.isEnabled_cus }">
<MvIF EXPR = "{ l.current EQ 'LOGN' }">
<MvDO FILE = "{ g.Module_Feature_CUS_RT }" NAME = "l.ok" VALUE = "{ Action_Customer_Login() }">
</MvIF>
<MvIF EXPR = "{ l.current EQ 'LOGO' }">
<MvDO FILE = "{ g.Module_Feature_CUS_RT }" NAME = "l.ok" VALUE = "{ Action_Customer_Logout() }">
</MvIF>
<MvIF EXPR = "{ l.current EQ 'EMPW' }">
<MvDO FILE = "{ g.Module_Feature_CUS_RT }" NAME = "l.ok" VALUE = "{ Action_Customer_EmailPassword() }">
</MvIF>
<MvIF EXPR = "{ l.current EQ 'UCST' }">
<MvDO FILE = "{ g.Module_Feature_CUS_RT }" NAME = "l.ok" VALUE = "{ Action_Customer_Update() }">
</MvIF>
<MvIF EXPR = "{ l.current EQ 'ICST' }">
<MvDO FILE = "{ g.Module_Feature_CUS_RT }" NAME = "l.ok" VALUE = "{ Action_Customer_Insert() }">
</MvIF>
</MvIF>
<MvDO FILE = "{ g.Module_Version }" NAME = "l.isEnabled" VALUE = "{ IsEnabled( 'AFF' ) }">
<MvIF EXPR = "{ l.isEnabled }">
<MvIF EXPR = "{ l.current EQ 'UAFL' }">
<MvDO FILE = "{ g.Module_Feature_AFF }" NAME = "l.ok" VALUE = "{ Action_Affiliate_Update_Run() }">
</MvIF>
<MvIF EXPR = "{ l.current EQ 'IAFL' }">
<MvDO FILE = "{ g.Module_Feature_AFF }" NAME = "l.ok" VALUE = "{ Action_Affiliate_Insert_Run() }">
</MvIF>
<MvIF EXPR = "{ l.current EQ 'ALGI' }">
<MvDO FILE = "{ g.Module_Feature_AFF }" NAME = "l.ok" VALUE = "{ Action_Affiliate_Login_Run() }">
</MvIF>
<MvIF EXPR = "{ l.current EQ 'ALOG' }">
<MvDO FILE = "{ g.Module_Feature_AFF }" NAME = "l.ok" VALUE = "{ Action_Affiliate_Logout_Run() }">
</MvIF>
<MvIF EXPR = "{ l.current EQ 'AFPW' }">
<MvDO FILE = "{ g.Module_Feature_AFF }" NAME = "l.ok" VALUE = "{ Action_Affiliate_EmailPassword_Run() }">
</MvIF>
</MvIF>
<MvIF EXPR = "{ l.current EQ 'ADPR' }">
<MvASSIGN NAME = "l.ok" VALUE = "{ Action_AddProductToBasket() }">
</MvIF>
<MvDO FILE = "{ g.Module_Version }" NAME = "l.isEnabled" VALUE = "{ IsEnabled( 'USL' ) }">
<MvIF EXPR = "{ l.isEnabled }">
<MvIF EXPR = "{ l.current EQ 'AUPR' }">
<MvDO FILE = "{ g.Module_Feature_USL_RT }" NAME = "l.ok" VALUE = "{ Action_AddUpsoldProductToBasket() }">
</MvIF>
<MvIF EXPR = "{ l.current EQ 'AUPM' }">
<MvDO FILE = "{ g.Module_Feature_USL_RT }" NAME = "l.ok" VALUE = "{ Action_AddMultipleUpsoldProductsToBasket() }">
</MvIF>
</MvIF>
<MvIF EXPR = "{ l.current EQ 'QNTY' }">
<MvASSIGN NAME = "l.ok" VALUE = "{ Action_UpdateQuantity() }">
</MvIF>
<MvIF EXPR = "{ l.current EQ 'RPRD' }">
<MvASSIGN NAME = "l.ok" VALUE = "{ Action_RemoveProductFromBasket() }">
</MvIF>
<MvIF EXPR = "{ l.current EQ 'CUSL' }">
<MvASSIGN NAME = "l.ok" VALUE = "{ Action_Customer_Upsell() }">
</MvIF>
<MvIF EXPR = "{ l.current EQ 'ORDR' }">
<MvASSIGN NAME = "l.ok" VALUE = "{ Action_Save_OrderInformation() }">
</MvIF>
<MvIF EXPR = "{ l.current EQ 'SHIP' }">
<MvASSIGN NAME = "l.ok" VALUE = "{ Action_CalculateShipping() }">
</MvIF>
<MvIF EXPR = "{ l.current EQ 'CTAX' }">
<MvASSIGN NAME = "l.ok" VALUE = "{ Action_CalculateTax() }">
</MvIF>
<MvIF EXPR = "{ l.current EQ 'AUTH' }">
<MvASSIGN NAME = "l.ok" VALUE = "{ Action_AuthorizePayment() }">
</MvIF>
<MvASSIGN NAME = "l.pos" VALUE = "{ l.pos + 1 }">
<MvASSIGN NAME = "l.current" VALUE = "{ gettoken( g.Action, ',', l.pos ) }">
</MvWHILE>
</MvIF>
<MvIF EXPR = "{ l.ok AND ( NOT g.Data_Entry_Error ) AND ( NOT l.storeclosed ) }">
<MvIF EXPR = "{ g.Screen EQ 'INVC' }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Order_Find_ID( BasketList.d.order_id ) }">
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Store_Module_UI }" NAME = "l.ok" VALUE = "{ UIModule_Invoice() }">
</MvIF>
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Basket_Delete( g.Session_ID ) }">
</MvIF>
<MvELSE>
<MvIF EXPR = "{ g.Screen EQ 'NEW' }">
<MvASSIGN NAME = "l.ok" VALUE = "{ Store_Screen_New() }">
<MvELSE>
<MvDO FILE = "{ g.Store_Module_UI }" NAME = "l.ok" VALUE = "{ UIModule_Dispatch() }">
</MvIF>
</MvIF>
</MvIF>
<MvELSE>
<MvIF EXPR = "{ Domain.d.ui_id EQ 0 }">
<MvLOCALIZED NAME = "l.error" ID = "MER-MER-00003">
<MvLOCALIZED-TEXT LANGUAGE = "en-US">There is no user interface configured for store selection.<BR>Please use the administration interface to select a user interface module.</MvLOCALIZED-TEXT>
<MvLOCALIZED-TEXT LANGUAGE = "de-DE">F�r die Ladenauswahl wurde keine Benutzeroberfl�che konfiguriert.<BR>Bitte w�hlen Sie mit der Administrationsoberfl�che ein Benutzeroberfl�chenmodul.</MvLOCALIZED-TEXT>
</MvLOCALIZED>
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Error( 'MER-MER-00003', l.error ) }">
<MvELSE>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Module_Find_ID( Domain.d.ui_id ) }">
<MvIF EXPR = "{ l.ok }">
<MvASSIGN NAME = "g.StoreSelection_Module_UI" VALUE = "{ Modules.d.module }">
</MvIF>
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.StoreSelection_Module_UI }" NAME = "l.ok" VALUE = "{ UIModule_Dispatch() }">
</MvIF>
</MvIF>
</MvIF>
</MvIF>
<MvIF EXPR = "{ NOT l.ok }">
<MvIF EXPR = "{ len( g.Error_Message ) EQ 0 }">
<MvLOCALIZED NAME = "l.error" ID = "MER-MER-00004">
<MvLOCALIZED-TOKEN NAME = "action" VALUE = "{ encodeentities( g.Action ) }">
<MvLOCALIZED-TOKEN NAME = "screen" VALUE = "{ encodeentities( g.Screen ) }">
<MvLOCALIZED-TEXT LANGUAGE = "en-US"><B>Unknown Error</B><BR><BR> Action = %action%<BR> Screen = %screen%</MvLOCALIZED-TEXT>
<MvLOCALIZED-TEXT LANGUAGE = "de-DE"><B>Unbekannter Fehler</B><BR><BR> Ausf�hrung = %action%<BR> Bildschirm = %screen%</MvLOCALIZED-TEXT>
</MvLOCALIZED>
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Error( 'MER-MER-00004', l.error ) }">
</MvIF>
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Screen_Error() }">
</MvIF>
</HTML>
<MvEXIT>
<MvFUNCTION NAME = "Error_Store_Closed" STANDARDOUTPUTLEVEL = "">
<MvASSIGN NAME = "l.message" VALUE = "{ glosub( Stores.d.mnt_close, '%store_name%', Stores.d.name ) }">
<MvASSIGN NAME = "l.message" VALUE = "{ glosub( l.message, '%maint_time%', l.time ) }">
<MvASSIGN NAME = "l.message" VALUE = "{ glosub( l.message, '%maint_date%', l.date ) }">
<MvASSIGN NAME = "l.message" VALUE = "{ glosub( l.message, '%maint_countdown%', l.minutes ) }">
<MvIF EXPR = "{ Modules.d.version GE 3.00 }">
<MvDO FILE = "{ g.Store_Module_UI }" NAME = "l.ok" VALUE = "{ UIModule_Store_Offline() }">
<MvELSE>
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Error( 'MER-MER-01444', l.message ) }">
</MvIF>
<MvFUNCTIONRETURN VALUE = "{ l.ok }">
</MvFUNCTION>
<MvFUNCTION NAME = "Action_AddProductToBasket" STANDARDOUTPUTLEVEL = "">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ BasketList_MakeDirty( g.Session_ID ) }">
<MvASSIGN NAME = "l.continue" VALUE = 1>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindFirst_Type( 'SYSTEM' ) }">
<MvWHILE EXPR = "{ l.found }">
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.result" VALUE = "{ SystemModule_Action_AddProductToBasket() }">
<MvIF EXPR = "{ l.result LE 0 }">
<MvASSIGN NAME = "l.continue" VALUE = 0>
<MvIF EXPR = "{ l.result EQ 0 }">
<MvASSIGN NAME = "l.ok" VALUE = 0>
</MvIF>
<MvWHILESTOP>
</MvIF>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindNext_Type( 'SYSTEM' ) }">
</MvWHILE>
<MvIF EXPR = "{ l.ok }">
<MvIF EXPR = "{ l.continue }">
<MvIF EXPR = "{ g.Quantity GE 1 }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Product_Find_Code( g.Product_Code ) }">
<MvASSIGN NAME = "l.missing" VALUE = 0>
<MvASSIGN NAME = "l.attributes" VALUE = 0>
<MvIF EXPR = "{ NOT Products.d.active }">
<MvLOCALIZED NAME = "l.error" ID = "MER-MER-00008">
<MvLOCALIZED-TOKEN NAME = "code" VALUE = "{ encodeentities( Products.d.code ) }">
<MvLOCALIZED-TEXT LANGUAGE = "en-US">Product '%code%' not found</MvLOCALIZED-TEXT>
<MvLOCALIZED-TEXT LANGUAGE = "de-DE">Produkt '%code%' nicht gefunden</MvLOCALIZED-TEXT>
</MvLOCALIZED>
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Error( 'MER-MER-00006', l.error ) }">
<MvELSE>
<MvASSIGN NAME = "l.inventory_available" VALUE = "1">
<MvDO FILE = "{ g.Module_Version }" NAME = "l.inv_enabled" VALUE = "{ IsEnabled( 'INV' ) }">
<MvIF EXPR = "{ l.inv_enabled }">
<MvDO FILE = "{ g.Module_Feature_INV_RT }" NAME = "l.track_inventory" VALUE = "{ INV_TrackOut( Products.d.id ) }">
<MvIF EXPR = "{ l.track_inventory }">
<MvDO FILE = "{ g.Module_Feature_INV_RT }" NAME = "l.quantity_available" VALUE = "{ INV_Quantity_Available( Products.d.id ) }">
<MvIF EXPR = "{ len( l.quantity_available ) AND l.quantity_available LT g.Quantity }">
<MvASSIGN NAME = "l.inventory_available" VALUE = "0">
<MvDO FILE = "{ g.Module_Feature_INV_RT }" NAME = "l.ok" VALUE = "{ INV_Quantity_Not_Available( Products.d.id, l.quantity_available ) }">
<MvASSIGN NAME = "g.Data_Entry_Error" VALUE = 1>
</MvIF>
</MvIF>
</MvIF>
<MvIF EXPR = "{ l.inventory_available }">
<MvIF EXPR = "{ l.ok }">
<MvIF EXPR = "{ g.Attributes }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ Attribute_FindFirst_Product( Products.d.id ) }">
<MvIF EXPR = "{ l.found }">
<MvDO FILE = "{ g.Module_Version }" NAME = "l.isEnabled" VALUE = "{ IsEnabled( 'ATT' ) }">
<MvIF EXPR = "{ l.isEnabled }">
<MvIF EXPR = "{ ( Attributes.d.type EQ 'template' ) }">
<MvDO FILE = "{ g.Feature_ATT_DB }" NAME = "l.found" VALUE = "{ AttributeTemplate_Find_ID( Attributes.d.attemp_id ) }">
<MvIF EXPR = "{ l.found }">
<MvDO FILE = "{ g.Feature_ATT_DB }" NAME = "l.found" VALUE = "{ AttributeTemplateAttribute_FindFirst_AttributeTemplate( AttributeTemplates.d.id ) }">
<MvIF EXPR = "{ l.found }">
<MvASSIGN NAME = "l.missing" VALUE = 1>
</MvIF>
</MvIF>
<MvELSE>
<MvASSIGN NAME = "l.missing" VALUE = 1>
</MvIF>
<MvELSE>
<MvASSIGN NAME = "l.missing" VALUE = 1>
</MvIF>
</MvIF>
<MvELSE>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ Attribute_FindFirst_Product( Products.d.id ) }">
<MvWHILE EXPR = "{ l.found AND ( NOT l.missing ) }">
<MvASSIGN NAME = "l.check" VALUE = 1>
<MvASSIGN NAME = "l.found_attribute" INDEX = "{ l.check }" VALUE = 0>
<MvWHILE EXPR = "{ l.check LE g.AttributeCount }">
<MvIF EXPR = "{ g.AttributeCode[ l.check ] EQ Attributes.d.code }">
<MvIF EXPR = "{ ( Attributes.d.type EQ 'radio' ) OR ( Attributes.d.type EQ 'select' ) }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.id" VALUE = "{ Option_Find_Code( Attributes.d.id, g.AttributeValue[ l.check ] ) }">
<MvIF EXPR = "{ l.id }">
<MvASSIGN NAME = "l.attributes" VALUE = "{ l.attributes + 1 }">
<MvASSIGN NAME = "l.attribute_id" INDEX = "{ l.attributes }" VALUE = "{ Attributes.d.id }">
<MvASSIGN NAME = "l.attribute_code" INDEX = "{ l.attributes }" VALUE = "{ Attributes.d.code }">
<MvASSIGN NAME = "l.option_id" INDEX = "{ l.attributes }" VALUE = "{ l.id }">
<MvASSIGN NAME = "l.option_code" INDEX = "{ l.attributes }" VALUE = "{ Options.d.code }">
<MvASSIGN NAME = "l.option_data" INDEX = "{ l.attributes }" VALUE = "">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.option_adjusted_price" VALUE = "{ Adjusted_Price( Products.d.id, Products.d.pgrpcount, Options.d.price, Options.d.cost ) }">
<MvASSIGN NAME = "l.option_price" INDEX = "{ l.attributes }" VALUE = "{ l.option_adjusted_price }">
<MvASSIGN NAME = "l.found_attribute" INDEX = "{ l.check }" VALUE = 1>
</MvIF>
<MvIF EXPR = "{ Attributes.d.required }">
<MvIF EXPR = "{ NOT l.found_attribute[ l.check ] }">
<MvASSIGN NAME = "l.missing" VALUE = 1>
</MvIF>
</MvIF>
</MvIF>
<MvIF EXPR = "{ ( Attributes.d.type EQ 'text' ) OR ( Attributes.d.type EQ 'memo' ) OR ( Attributes.d.type EQ 'checkbox' ) }">
<MvASSIGN NAME = "l.option_id" INDEX = "{ l.check }" VALUE = 0>
<MvIF EXPR = "{ len( g.AttributeValue[ l.check ] ) }">
<MvASSIGN NAME = "l.attributes" VALUE = "{ l.attributes + 1 }">
<MvASSIGN NAME = "l.attribute_id" INDEX = "{ l.attributes }" VALUE = "{ Attributes.d.id }">
<MvASSIGN NAME = "l.attribute_code" INDEX = "{ l.attributes }" VALUE = "{ Attributes.d.code }">
<MvASSIGN NAME = "l.option_id" INDEX = "{ l.attributes }" VALUE = 0>
<MvASSIGN NAME = "l.option_code" INDEX = "{ l.attributes }" VALUE = "">
<MvIF EXPR = "{ Attributes.d.type EQ 'checkbox' }">
<MvASSIGN NAME = "l.option_data" INDEX = "{ l.attributes }" VALUE = "">
<MvELSE>
<MvASSIGN NAME = "l.option_data" INDEX = "{ l.attributes }" VALUE = "{ g.AttributeValue[ l.check ] }">
</MvIF>
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.attribute_adjusted_price" VALUE = "{ Adjusted_Price( Products.d.id, Products.d.pgrpcount, Attributes.d.price, Attributes.d.cost ) }">
<MvASSIGN NAME = "l.option_price" INDEX = "{ l.attributes }" VALUE = "{ l.attribute_adjusted_price }">
<MvASSIGN NAME = "l.found_attribute" INDEX = "{ l.check }" VALUE = 1>
</MvIF>
<MvIF EXPR = "{ Attributes.d.required }">
<MvIF EXPR = "{ NOT l.found_attribute[ l.check ] }">
<MvASSIGN NAME = "l.missing" VALUE = 1>
</MvIF>
</MvIF>
</MvIF>
<MvDO FILE = "{ g.Module_Version }" NAME = "l.isEnabled" VALUE = "{ IsEnabled( 'ATT' ) }">
<MvIF EXPR = "{ l.isEnabled }">
<MvIF EXPR = "{ ( Attributes.d.type EQ 'template' ) }">
<MvDO FILE = "{ g.Feature_ATT_DB }" NAME = "l.found" VALUE = "{ AttributeTemplate_Find_ID( Attributes.d.attemp_id ) }">
<MvIF EXPR = "{ l.found }">
<MvDO FILE = "{ g.Feature_ATT_DB }" NAME = "l.found" VALUE = "{ AttributeTemplateAttribute_FindFirst_AttributeTemplate( AttributeTemplates.d.id ) }">
<MvWHILE EXPR = "{ l.found }">
<MvIF EXPR = "{ ( AttributeTemplateAttributes.d.type EQ 'radio' ) OR ( AttributeTemplateAttributes.d.type EQ 'select' ) }">
<MvDO FILE = "{ g.Feature_ATT_DB }" NAME = "l.id" VALUE = "{ AttributeTemplateOption_Find_Code( AttributeTemplateAttributes.d.id, g.AttributeValue[ l.check ] ) }">
<MvIF EXPR = "{ l.id }">
<MvASSIGN NAME = "l.attributes" VALUE = "{ l.attributes + 1 }">
<MvASSIGN NAME = "l.attribute_id" INDEX = "{ l.attributes }" VALUE = "{ AttributeTemplateAttributes.d.id }">
<MvASSIGN NAME = "l.attribute_code" INDEX = "{ l.attributes }" VALUE = "{ AttributeTemplateAttributes.d.code }">
<MvASSIGN NAME = "l.option_id" INDEX = "{ l.attributes }" VALUE = "{ l.id }">
<MvASSIGN NAME = "l.option_code" INDEX = "{ l.attributes }" VALUE = "{ AttributeTemplateOptions.d.code }">
<MvASSIGN NAME = "l.option_data" INDEX = "{ l.attributes }" VALUE = "">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.option_adjusted_price" VALUE = "{ Adjusted_Price( Products.d.id, Products.d.pgrpcount, AttributeTemplateOptions.d.price, AttributeTemplateOptions.d.cost ) }">
<MvASSIGN NAME = "l.option_price" INDEX = "{ l.attributes }" VALUE = "{ l.option_adjusted_price }">
<MvASSIGN NAME = "l.found_attribute" INDEX = "{ l.check }" VALUE = 1>
</MvIF>
<MvELSE>
<MvASSIGN NAME = "l.option_id" INDEX = "{ l.check }" VALUE = 0>
<MvIF EXPR = "{ len( g.AttributeValue[ l.check ] ) }">
<MvASSIGN NAME = "l.attributes" VALUE = "{ l.attributes + 1 }">
<MvASSIGN NAME = "l.attribute_id" INDEX = "{ l.attributes }" VALUE = "{ AttributeTemplateAttributes.d.id }">
<MvASSIGN NAME = "l.attribute_code" INDEX = "{ l.attributes }" VALUE = "{ AttributeTemplateAttributes.d.code }">
<MvASSIGN NAME = "l.option_id" INDEX = "{ l.attributes }" VALUE = 0>
<MvASSIGN NAME = "l.option_code" INDEX = "{ l.attributes }" VALUE = "">
<MvIF EXPR = "{ AttributeTemplateAttributes.d.type EQ 'checkbox' }">
<MvASSIGN NAME = "l.option_data" INDEX = "{ l.attributes }" VALUE = "">
<MvELSE>
<MvASSIGN NAME = "l.option_data" INDEX = "{ l.attributes }" VALUE = "{ g.AttributeValue[ l.check ] }">
</MvIF>
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.attribute_adjusted_price" VALUE = "{ Adjusted_Price( Products.d.id, Products.d.pgrpcount, AttributeTemplateAttributes.d.price, AttributeTemplateAttributes.d.cost ) }">
<MvASSIGN NAME = "l.option_price" INDEX = "{ l.attributes }" VALUE = "{ l.attribute_adjusted_price }">
<MvASSIGN NAME = "l.found_attribute" INDEX = "{ l.check }" VALUE = 1>
</MvIF>
</MvIF>
<MvIF EXPR = "{ AttributeTemplateAttributes.d.required }">
<MvIF EXPR = "{ NOT l.found_attribute[ l.check ] }">
<MvASSIGN NAME = "l.missing" VALUE = 1>
</MvIF>
</MvIF>
<MvDO FILE = "{ g.Feature_ATT_DB }" NAME = "l.found" VALUE = "{ AttributeTemplateAttribute_FindNext_AttributeTemplate( AttributeTemplates.d.id ) }">
<MvASSIGN NAME = "l.check" VALUE = "{ l.check + 1 }">
</MvWHILE>
</MvIF>
</MvIF>
</MvIF>
<MvWHILESTOP>
</MvIF>
<MvASSIGN NAME = "l.check" VALUE = "{ l.check + 1 }">
</MvWHILE>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ Attribute_FindNext_Product( Products.d.id ) }">
</MvWHILE>
</MvIF>
</MvIF>
<MvIF EXPR = "{ l.missing }">
<MvDO FILE = "{ g.Store_Module_UI }" NAME = "l.ok" VALUE = "{ UIModule_Product_Attributes() }">
<MvASSIGN NAME = "g.Data_Entry_Error" VALUE = 1>
<MvELSE>
<MvASSIGN NAME = "l.insert" VALUE = 1>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ Basket_FindFirst_ID( g.Basket_ID ) }">
<MvWHILE EXPR = "{ l.found }">
<MvIF EXPR = "{ Baskets.d.product_id EQ Products.d.id }">
<MvASSIGN NAME = "l.matches" VALUE = 1>
<MvASSIGN NAME = "l.basket_attributes" VALUE = 0>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ BasketOption_FindFirst_Line( Baskets.d.line_id ) }">
<MvWHILE EXPR = "{ l.found }">
<MvASSIGN NAME = "l.basket_attributes" VALUE = "{ l.basket_attributes + 1 }">
<MvASSIGN NAME = "l.attribute" VALUE = 1>
<MvWHILE EXPR = "{ l.attribute LE l.attributes }">
<MvIF EXPR = "{ l.attribute_id[ l.attribute ] EQ BasketOptions.d.attr_id }">
<MvIF EXPR = "{ ( l.option_id[ l.attribute ] EQ BasketOptions.d.option_id ) AND
( ( l.option_data[ l.attribute ] EQ BasketOptions.d.data ) OR
( l.option_data[ l.attribute ] EQ BasketOptions.d.data_long ) ) }">
<MvASSIGN NAME = "l.attribute_found" INDEX = "{ l.attribute }" VALUE = 1>
<MvASSIGN NAME = "l.basket_attribute_found" INDEX = "{ l.basket_attributes }" VALUE = 1>
<MvELSE>
<MvASSIGN NAME = "l.matches" VALUE = 0>
</MvIF>
<MvWHILESTOP>
</MvIF>
<MvASSIGN NAME = "l.attribute" VALUE = "{ l.attribute + 1 }">
</MvWHILE>
<MvIF EXPR = "{ NOT l.matches }">
<MvWHILESTOP>
</MvIF>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ BasketOption_FindNext_Line( Baskets.d.line_id ) }">
</MvWHILE>
<MvIF EXPR = "{ l.matches }">
<MvASSIGN NAME = "l.attribute" VALUE = 1>
<MvWHILE EXPR = "{ l.attribute LE l.basket_attributes }">
<MvIF EXPR = "{ NOT l.basket_attribute_found[ l.attribute ] }">
<MvASSIGN NAME = "l.matches" VALUE = 0>
<MvWHILESTOP>
</MvIF>
<MvASSIGN NAME = "l.attribute" VALUE = "{ l.attribute + 1 }">
</MvWHILE>
</MvIF>
<MvIF EXPR = "{ l.matches }">
<MvASSIGN NAME = "l.attribute" VALUE = 1>
<MvWHILE EXPR = "{ l.attribute LE l.attributes }">
<MvIF EXPR = "{ NOT l.attribute_found[ l.attribute ] }">
<MvASSIGN NAME = "l.matches" VALUE = 0>
<MvWHILESTOP>
</MvIF>
<MvASSIGN NAME = "l.attribute" VALUE = "{ l.attribute + 1 }">
</MvWHILE>
</MvIF>
<MvIF EXPR = "{ l.matches }">
<MvASSIGN NAME = "l.insert" VALUE = 0>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Basket_Update_Quantity( Baskets.d.line_id, Baskets.d.quantity + g.Quantity ) }">
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Log_Action_UpdateQuantity( Baskets.d.code, Baskets.d.quantity ) }">
</MvIF>
<MvWHILESTOP>
</MvIF>
</MvIF>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ Basket_FindNext_ID( g.Basket_ID ) }">
</MvWHILE>
<MvIF EXPR = "{ l.insert }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.adjusted_price" VALUE = "{ Adjusted_Price( Products.d.id, Products.d.pgrpcount, Products.d.price, Products.d.cost ) }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.line_id" VALUE = "{ Basket_Insert( g.Basket_ID, Products.d.id, Products.d.code, Products.d.name, l.adjusted_price, Products.d.weight, Products.d.taxable, 0, g.Quantity ) }">
<MvASSIGN NAME = "l.attribute" VALUE = 1>
<MvWHILE EXPR = "{ l.attribute LE l.attributes }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ BasketOption_Insert( l.line_id, l.attribute_id[ l.attribute ], l.attribute_code[ l.attribute ], l.option_id[ l.attribute ], l.option_code[ l.attribute ], l.option_data[ l.attribute ], l.option_price[ l.attribute ] ) }">
<MvASSIGN NAME = "l.attribute" VALUE = "{ l.attribute + 1 }">
</MvWHILE>
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Log_Action_AddProductToBasket( g.Product_Code, g.Quantity ) }">
</MvIF>
</MvIF>
</MvIF>
</MvIF>
</MvIF>
</MvIF>
</MvIF>
</MvIF>
<MvIF EXPR = "{ g.Current_Product_Code }">
<MvASSIGN NAME = "g.Product_Code" VALUE = "{ g.Current_Product_Code }">
</MvIF>
<MvFUNCTIONRETURN VALUE = "{ l.ok }">
</MvFUNCTION>
<MvFUNCTION NAME = "Action_UpdateQuantity" STANDARDOUTPUTLEVEL = "">
<MvASSIGN NAME = "l.continue" VALUE = 1>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindFirst_Type( 'SYSTEM' ) }">
<MvWHILE EXPR = "{ l.found }">
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.result" VALUE = "{ SystemModule_Action_UpdateQuantity() }">
<MvIF EXPR = "{ l.result LE 0 }">
<MvASSIGN NAME = "l.continue" VALUE = 0>
<MvIF EXPR = "{ l.result EQ 0 }">
<MvASSIGN NAME = "l.ok" VALUE = 0>
</MvIF>
<MvWHILESTOP>
</MvIF>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindNext_Type( 'SYSTEM' ) }">
</MvWHILE>
<MvIF EXPR = "{ l.continue }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Basket_Find_Line( g.Basket_line ) }">
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Module_Library_DB }" NAME = "l.prod_id" VALUE = "{ Product_Find_Code( Baskets.d.code ) }">
<MvIF EXPR = "{ ( Baskets.d.id EQ g.Basket_ID ) AND ( NOT Baskets.d.upsold ) }">
<MvASSIGN NAME = "l.inventory_available" VALUE = "1">
<MvDO FILE = "{ g.Module_Version }" NAME = "l.inv_enabled" VALUE = "{ IsEnabled( 'INV' ) }">
<MvIF EXPR = "{ l.inv_enabled }">
<MvDO FILE = "{ g.Module_Feature_INV_RT }" NAME = "l.track_inventory" VALUE = "{ INV_TrackOut( Products.d.id ) }">
<MvIF EXPR = "{ l.track_inventory }">
<MvDO FILE = "{ g.Module_Feature_INV_RT }" NAME = "l.quantity_available" VALUE = "{ INV_Quantity_Available( Products.d.id ) }">
<MvIF EXPR = "{ len( l.quantity_available ) AND (l.quantity_available LT ( g.Quantity - Baskets.d.quantity )) }">
<MvASSIGN NAME = "l.inventory_available" VALUE = "0">
<MvDO FILE = "{ g.Module_Feature_INV_RT }" NAME = "l.ok" VALUE = "{ INV_Quantity_Not_Available( Products.d.id, l.quantity_available ) }">
<MvASSIGN NAME = "g.Data_Entry_Error" VALUE = 1>
</MvIF>
</MvIF>
</MvIF>
<MvIF EXPR = "{ l.inventory_available }">
<MvIF EXPR = "{ g.Quantity LE 0 }">
<MvASSIGN NAME = "l.product_code" VALUE = "{ Baskets.d.code }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Basket_Delete_Line( g.Basket_Line ) }">
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Log_Action_RemoveProductFromBasket( l.product_code ) }">
</MvIF>
<MvELSE>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Basket_Update_Quantity( g.Basket_Line, g.Quantity ) }">
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Log_Action_UpdateQuantity( Baskets.d.code, g.Quantity ) }">
</MvIF>
</MvIF>
</MvIF>
</MvIF>
</MvIF>
</MvIF>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ BasketList_MakeDirty( g.Session_ID ) }">
<MvFUNCTIONRETURN VALUE = "{ l.ok }">
</MvFUNCTION>
<MvFUNCTION NAME = "Action_RemoveProductFromBasket" STANDARDOUTPUTLEVEL = "">
<MvASSIGN NAME = "l.ok" VALUE = 1>
<MvASSIGN NAME = "l.continue" VALUE = 1>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindFirst_Type( 'SYSTEM' ) }">
<MvWHILE EXPR = "{ l.found }">
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.result" VALUE = "{ SystemModule_Action_RemoveProductFromBasket() }">
<MvIF EXPR = "{ l.result LE 0 }">
<MvASSIGN NAME = "l.continue" VALUE = 0>
<MvIF EXPR = "{ l.result EQ 0 }">
<MvASSIGN NAME = "l.ok" VALUE = 0>
</MvIF>
<MvWHILESTOP>
</MvIF>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindNext_Type( 'SYSTEM' ) }">
</MvWHILE>
<MvIF EXPR = "{ l.continue }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Basket_Find_Line( g.Basket_line ) }">
<MvIF EXPR = "{ l.ok }">
<MvIF EXPR = "{ Baskets.d.id EQ g.Basket_ID }">
<MvASSIGN NAME = "l.product_code" VALUE = "{ Baskets.d.code }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Basket_Delete_Line( g.Basket_Line ) }">
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Log_Action_RemoveProductFromBasket( l.product_code ) }">
</MvIF>
</MvIF>
</MvIF>
</MvIF>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ BasketList_MakeDirty( g.Session_ID ) }">
<MvFUNCTIONRETURN VALUE = "{ l.ok }">
</MvFUNCTION>
<MvFUNCTION NAME = "Order_Validate" STANDARDOUTPUTLEVEL = "">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.valid" VALUE = "{ Get_StandardFields() }">
<MvASSIGN NAME = "g.ShipFirstName" VALUE = "{ ltrim( rtrim( g.ShipFirstName ) ) }">
<MvIF EXPR = "{ ( StandardFields.d.mode_fname EQ 'R' ) AND ( NOT len( g.ShipFirstName ) ) }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.ShipFirstName_Invalid" VALUE = 1>
</MvIF>
<MvASSIGN NAME = "g.ShipLastName" VALUE = "{ ltrim( rtrim( g.ShipLastName ) ) }">
<MvIF EXPR = "{ ( StandardFields.d.mode_lname EQ 'R' ) AND ( NOT len( g.ShipLastName ) ) }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.ShipLastName_Invalid" VALUE = 1>
</MvIF>
<MvASSIGN NAME = "g.ShipEmail" VALUE = "{ ltrim( rtrim( g.ShipEmail ) ) }">
<MvIF EXPR = "{ len( g.ShipEmail ) EQ 0 }">
<MvASSIGN NAME = "g.ShipEmail" VALUE = "{ ltrim( rtrim( g.BillEmail ) ) }">
</MvIF>
<MvIF EXPR = "{ ( StandardFields.d.mode_email EQ 'R' ) AND ( NOT len( g.ShipEmail ) ) }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.ShipEmail_Invalid" VALUE = 1>
<MvELSE>
<MvIF EXPR = "{ len( g.ShipEmail ) }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.email_valid" VALUE = "{ Email_Validate( g.ShipEmail ) }">
<MvIF EXPR = "{ NOT l.email_valid }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.ShipEmail_Invalid" VALUE = 1>
</MvIF>
</MvIF>
</MvIF>
<MvASSIGN NAME = "g.ShipPhone" VALUE = "{ ltrim( rtrim( g.ShipPhone ) ) }">
<MvIF EXPR = "{ StandardFields.d.mode_phone EQ 'R' }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.phone_valid" VALUE = "{ Phone_Validate( g.ShipPhone, g.ShipCountry ) }">
<MvIF EXPR = "{ NOT l.phone_valid }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.ShipPhone_Invalid" VALUE = 1>
</MvIF>
<MvELSE>
<MvIF EXPR = "{ len( g.ShipPhone ) }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.phone_valid" VALUE = "{ Phone_Validate( g.ShipPhone, g.ShipCountry ) }">
<MvIF EXPR = "{ NOT l.phone_valid }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.ShipPhone_Invalid" VALUE = 1>
</MvIF>
</MvIF>
</MvIF>
<MvASSIGN NAME = "g.ShipFax" VALUE = "{ ltrim( rtrim( g.ShipFax ) ) }">
<MvIF EXPR = "{ ( StandardFields.d.mode_fax EQ 'R' ) }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.fax_valid" VALUE = "{ Phone_Validate( g.ShipFax, g.ShipCountry ) }">
<MvIF EXPR = "{ NOT l.fax_valid }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.ShipFax_Invalid" VALUE = 1>
</MvIF>
<MvELSE>
<MvIF EXPR = "{ len( g.ShipFax ) }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.fax_valid" VALUE = "{ Phone_Validate( g.ShipFax, g.ShipCountry ) }">
<MvIF EXPR = "{ NOT l.fax_valid }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.ShipFax_Invalid" VALUE = 1>
</MvIF>
</MvIF>
</MvIF>
<MvASSIGN NAME = "g.ShipCompany" VALUE = "{ ltrim( rtrim( g.ShipCompany ) ) }">
<MvIF EXPR = "{ ( StandardFields.d.mode_comp EQ 'R' ) AND ( NOT len( g.ShipCompany ) ) }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.ShipCompany_Invalid" VALUE = 1>
</MvIF>
<MvASSIGN NAME = "g.ShipAddress" VALUE = "{ ltrim( rtrim( g.ShipAddress ) ) }">
<MvIF EXPR = "{ ( StandardFields.d.mode_addr EQ 'R' ) AND ( NOT len( g.ShipAddress ) ) }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.ShipAddress_Invalid" VALUE = 1>
</MvIF>
<MvASSIGN NAME = "g.ShipCity" VALUE = "{ ltrim( rtrim( g.ShipCity ) ) }">
<MvIF EXPR = "{ ( StandardFields.d.mode_city EQ 'R' ) AND ( NOT len( g.ShipCity ) ) }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.ShipCity_Invalid" VALUE = 1>
</MvIF>
<MvASSIGN NAME = "g.ShipState" VALUE = "{ ltrim( rtrim( g.ShipState ) ) }">
<MvASSIGN NAME = "g.ShipStateSelect" VALUE = "{ ltrim( rtrim( g.ShipStateSelect ) ) }">
<MvIF EXPR = "{ len( g.ShipStateSelect ) }">
<MvASSIGN NAME = "g.ShipState" VALUE = "{ g.ShipStateSelect }">
<MvELSE>
<MvIF EXPR = "{ ( StandardFields.d.mode_state EQ 'R' ) AND ( NOT len( g.ShipState ) ) }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.ShipState_Invalid" VALUE = 1>
</MvIF>
</MvIF>
<MvASSIGN NAME = "g.ShipZip" VALUE = "{ ltrim( rtrim( g.ShipZip ) ) }">
<MvIF EXPR = "{ StandardFields.d.mode_zip EQ 'R' }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.zip_valid" VALUE = "{ Zip_Validate( g.ShipZip, g.ShipCountry ) }">
<MvIF EXPR = "{ NOT l.zip_valid }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.ShipZip_Invalid" VALUE = 1>
</MvIF>
</MvIF>
<MvASSIGN NAME = "g.ShipCountry" VALUE = "{ ltrim( rtrim( g.ShipCountry ) ) }">
<MvIF EXPR = "{ ( StandardFields.d.mode_cntry EQ 'R' ) AND ( NOT len( g.ShipCountry ) ) }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.ShipCountry_Invalid" VALUE = 1>
</MvIF>
<MvIF EXPR = "{ l.valid }">
<MvASSIGN NAME = "g.BillFirstName" VALUE = "{ ltrim( rtrim( g.BillFirstName ) ) }">
<MvASSIGN NAME = "g.BillLastName" VALUE = "{ ltrim( rtrim( g.BillLastName ) ) }">
<MvASSIGN NAME = "g.BillEmail" VALUE = "{ ltrim( rtrim( g.BillEmail ) ) }">
<MvASSIGN NAME = "g.BillCompany" VALUE = "{ ltrim( rtrim( g.BillCompany ) ) }">
<MvASSIGN NAME = "g.BillPhone" VALUE = "{ ltrim( rtrim( g.BillPhone ) ) }">
<MvASSIGN NAME = "g.BillFax" VALUE = "{ ltrim( rtrim( g.BillFax ) ) }">
<MvASSIGN NAME = "g.BillAddress" VALUE = "{ ltrim( rtrim( g.BillAddress ) ) }">
<MvASSIGN NAME = "g.BillCity" VALUE = "{ ltrim( rtrim( g.BillCity ) ) }">
<MvASSIGN NAME = "g.BillState" VALUE = "{ ltrim( rtrim( g.BillState ) ) }">
<MvASSIGN NAME = "g.BillStateSelect" VALUE = "{ ltrim( rtrim( g.BillStateSelect ) ) }">
<MvASSIGN NAME = "g.BillZip" VALUE = "{ ltrim( rtrim( g.BillZip ) ) }">
<MvASSIGN NAME = "g.BillCountry" VALUE = "{ ltrim( rtrim( g.BillCountry ) ) }">
<MvIF EXPR = "{ ( g.BillFirstName EQ '' ) AND
( g.BillLastName EQ '' ) AND
( g.BillEmail EQ '' ) AND
( g.BillCompany EQ '' ) AND
( g.BillPhone EQ '' ) AND
( g.BillFax EQ '' ) AND
( g.BillAddress EQ '' ) AND
( g.BillCity EQ '' ) AND
( g.BillState EQ '' ) AND
( g.BillStateSelect EQ '' ) AND
( g.BillZip EQ '' ) AND
( ( g.BillCountry EQ '' ) OR ( g.BillCountry EQ g.ShipCountry) ) }">
<MvASSIGN NAME = "g.BillFirstName" VALUE = "{ g.ShipFirstName }">
<MvASSIGN NAME = "g.BillLastName" VALUE = "{ g.ShipLastName }">
<MvASSIGN NAME = "g.BillEmail" VALUE = "{ g.ShipEmail }">
<MvASSIGN NAME = "g.BillCompany" VALUE = "{ g.ShipCompany }">
<MvASSIGN NAME = "g.BillPhone" VALUE = "{ g.ShipPhone }">
<MvASSIGN NAME = "g.BillFax" VALUE = "{ g.ShipFax }">
<MvASSIGN NAME = "g.BillAddress" VALUE = "{ g.ShipAddress }">
<MvASSIGN NAME = "g.BillCity" VALUE = "{ g.ShipCity }">
<MvASSIGN NAME = "g.BillState" VALUE = "{ g.ShipState }">
<MvASSIGN NAME = "g.BillZip" VALUE = "{ g.ShipZip }">
<MvASSIGN NAME = "g.BillCountry" VALUE = "{ g.ShipCountry }">
<MvELSE>
<MvIF EXPR = "{ ( StandardFields.d.mode_fname EQ 'R' ) AND ( NOT len( g.BillFirstName ) ) }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.BillFirstName_Invalid" VALUE = 1>
</MvIF>
<MvIF EXPR = "{ ( StandardFields.d.mode_lname EQ 'R' ) AND ( NOT len( g.BillLastName ) ) }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.BillLastName_Invalid" VALUE = 1>
</MvIF>
<MvIF EXPR = "{ ( StandardFields.d.mode_email EQ 'R' ) OR ( ( StandardFields.d.mode_email EQ 'R' ) AND ( NOT len( g.BillLastName ) ) ) }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.email_valid" VALUE = "{ Email_Validate( g.BillEmail ) }">
<MvIF EXPR = "{ NOT l.email_valid }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.BillEmail_Invalid" VALUE = 1>
</MvIF>
</MvIF>
<MvIF EXPR = "{ StandardFields.d.mode_phone EQ 'R' }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.phone_valid" VALUE = "{ Phone_Validate( g.BillPhone, g.BillCountry ) }">
<MvIF EXPR = "{ NOT l.phone_valid }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.BillPhone_Invalid" VALUE = 1>
</MvIF>
<MvELSE>
<MvIF EXPR = "{ len( g.BillPhone ) }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.phone_valid" VALUE = "{ Phone_Validate( g.BillPhone, g.BillCountry ) }">
<MvIF EXPR = "{ NOT l.phone_valid }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.BillPhone_Invalid" VALUE = 1>
</MvIF>
</MvIF>
</MvIF>
<MvIF EXPR = "{ ( StandardFields.d.mode_fax EQ 'R' ) }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.fax_valid" VALUE = "{ Phone_Validate( g.BillFax, g.BillCountry ) }">
<MvIF EXPR = "{ NOT l.fax_valid }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.BillFax_Invalid" VALUE = 1>
</MvIF>
<MvELSE>
<MvIF EXPR = "{ len( g.BillFax ) }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.fax_valid" VALUE = "{ Phone_Validate( g.BillFax, g.BillCountry ) }">
<MvIF EXPR = "{ NOT l.fax_valid }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.BillFax_Invalid" VALUE = 1>
</MvIF>
</MvIF>
</MvIF>
<MvIF EXPR = "{ ( StandardFields.d.mode_comp EQ 'R' ) AND ( NOT len( g.BillCompany ) ) }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.BillCompany_Invalid" VALUE = 1>
</MvIF>
<MvIF EXPR = "{ ( StandardFields.d.mode_addr EQ 'R' ) AND ( NOT len( g.BillAddress ) ) }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.BillAddress_Invalid" VALUE = 1>
</MvIF>
<MvIF EXPR = "{ ( StandardFields.d.mode_city EQ 'R' ) AND ( NOT len( g.BillCity ) ) }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.BillCity_Invalid" VALUE = 1>
</MvIF>
<MvIF EXPR = "{ g.BillStateSelect }">
<MvASSIGN NAME = "g.BillState" VALUE = "{ g.BillStateSelect }">
<MvELSE>
<MvIF EXPR = "{ ( StandardFields.d.mode_state EQ 'R' ) AND ( NOT g.BillState ) }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.BillState_Invalid" VALUE = 1>
</MvIF>
</MvIF>
<MvIF EXPR = "{ StandardFields.d.mode_zip EQ 'R' }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.zip_valid" VALUE = "{ Zip_Validate( g.BillZip, g.BillCountry ) }">
<MvIF EXPR = "{ NOT l.zip_valid }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.BillZip_Invalid" VALUE = 1>
</MvIF>
</MvIF>
<MvIF EXPR = "{ ( StandardFields.d.mode_cntry EQ 'R' ) AND ( NOT len( g.BillCountry ) ) }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
<MvASSIGN NAME = "g.BillCountry_Invalid" VALUE = 1>
</MvIF>
</MvIF>
</MvIF>
<MvDO FILE = "{ g.Store_Module_Tax }" NAME = "l.tax_valid" VALUE = "{ TaxModule_Order_Validate() }">
<MvIF EXPR = "{ NOT l.tax_valid }">
<MvASSIGN NAME = "l.valid" VALUE = 0>
</MvIF>
<MvIF EXPR = "{ NOT l.valid }">
<MvASSIGN NAME = "g.Data_Entry_Error" VALUE = 1>
</MvIF>
<MvFUNCTIONRETURN VALUE = "{ l.valid }">
</MvFUNCTION>
<MvFUNCTION NAME = "Action_Save_OrderInformation" STANDARDOUTPUTLEVEL = "">
<MvASSIGN NAME = "l.ok" VALUE = 1>
<MvASSIGN NAME = "l.continue" VALUE = 1>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindFirst_Type( 'SYSTEM' ) }">
<MvWHILE EXPR = "{ l.found }">
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.result" VALUE = "{ SystemModule_Action_Save_OrderInformation() }">
<MvIF EXPR = "{ l.result LE 0 }">
<MvASSIGN NAME = "l.continue" VALUE = 0>
<MvIF EXPR = "{ l.result EQ 0 }">
<MvASSIGN NAME = "l.ok" VALUE = 0>
</MvIF>
<MvWHILESTOP>
</MvIF>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindNext_Type( 'SYSTEM' ) }">
</MvWHILE>
<MvIF EXPR = "{ l.continue }">
<MvIF EXPR = "{ NOT Order_Validate() }">
<MvDO FILE = "{ g.Store_Module_UI }" NAME = "l.ok" VALUE = "{ UIModule_Invalid_OrderInformation() }">
<MvELSE>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ BasketList_Save_Order_Info( g.Session_ID, g.ShipFirstName, g.ShipLastName, g.ShipEmail, g.ShipCompany, g.ShipPhone,
g.ShipFax, g.ShipAddress, g.ShipCity, g.ShipState, g.ShipZip, g.ShipCountry,
g.BillFirstName, g.BillLastName, g.BillEmail, g.BillCompany, g.BillPhone, g.BillFax,
g.BillAddress, g.BillCity, g.BillState, g.BillZip, g.BillCountry ) }">
<MvDO FILE = "{ g.Module_Version }" NAME = "l.isEnabled" VALUE = "{ IsEnabled( 'CUS' ) }">
<MvIF EXPR = "{ l.isEnabled AND l.ok AND g.Update_Customer AND BasketList.d.cust_id }">
<MvDO FILE = "{ g.Module_Feature_CUS_DB }" NAME = "l.ok" VALUE = "{ Customer_Find_ID( BasketList.d.cust_id ) }">
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Module_Library_DB }" NAME = "l.foo" VALUE = "{ Get_StandardFields() }">
<MvIF EXPR = "{ StandardFields.d.mode_fname NE 'H' }">
<MvASSIGN NAME = "Customers.d.ship_fname" VALUE = "{ g.ShipFirstName }">
<MvASSIGN NAME = "Customers.d.bill_fname" VALUE = "{ g.BillFirstName }">
</MvIF>
<MvIF EXPR = "{ StandardFields.d.mode_lname NE 'H' }">
<MvASSIGN NAME = "Customers.d.ship_lname" VALUE = "{ g.ShipLastName }">
<MvASSIGN NAME = "Customers.d.bill_lname" VALUE = "{ g.BillLastName }">
</MvIF>
<MvIF EXPR = "{ StandardFields.d.mode_email NE 'H' }">
<MvASSIGN NAME = "Customers.d.ship_email" VALUE = "{ g.ShipEmail }">
<MvASSIGN NAME = "Customers.d.bill_email" VALUE = "{ g.BillEmail }">
</MvIF>
<MvIF EXPR = "{ StandardFields.d.mode_comp NE 'H' }">
<MvASSIGN NAME = "Customers.d.ship_comp" VALUE = "{ g.ShipCompany }">
<MvASSIGN NAME = "Customers.d.bill_comp" VALUE = "{ g.BillCompany }">
</MvIF>
<MvIF EXPR = "{ StandardFields.d.mode_phone NE 'H' }">
<MvASSIGN NAME = "Customers.d.ship_phone" VALUE = "{ g.ShipPhone }">
<MvASSIGN NAME = "Customers.d.bill_phone" VALUE = "{ g.BillPhone }">
</MvIF>
<MvIF EXPR = "{ StandardFields.d.mode_fax NE 'H' }">
<MvASSIGN NAME = "Customers.d.ship_fax" VALUE = "{ g.ShipFax }">
<MvASSIGN NAME = "Customers.d.bill_fax" VALUE = "{ g.BillFax }">
</MvIF>
<MvIF EXPR = "{ StandardFields.d.mode_addr NE 'H' }">
<MvASSIGN NAME = "Customers.d.ship_addr" VALUE = "{ g.ShipAddress }">
<MvASSIGN NAME = "Customers.d.bill_addr" VALUE = "{ g.BillAddress }">
</MvIF>
<MvIF EXPR = "{ StandardFields.d.mode_city NE 'H' }">
<MvASSIGN NAME = "Customers.d.ship_city" VALUE = "{ g.ShipCity }">
<MvASSIGN NAME = "Customers.d.bill_city" VALUE = "{ g.BillCity }">
</MvIF>
<MvIF EXPR = "{ StandardFields.d.mode_state NE 'H' }">
<MvASSIGN NAME = "Customers.d.ship_state" VALUE = "{ g.ShipState }">
<MvASSIGN NAME = "Customers.d.bill_state" VALUE = "{ g.BillState }">
</MvIF>
<MvIF EXPR = "{ StandardFields.d.mode_zip NE 'H' }">
<MvASSIGN NAME = "Customers.d.ship_zip" VALUE = "{ g.ShipZip }">
<MvASSIGN NAME = "Customers.d.bill_zip" VALUE = "{ g.BillZip }">
</MvIF>
<MvIF EXPR = "{ StandardFields.d.mode_cntry NE 'H' }">
<MvASSIGN NAME = "Customers.d.ship_cntry" VALUE = "{ g.ShipCountry }">
<MvASSIGN NAME = "Customers.d.bill_cntry" VALUE = "{ g.BillCountry }">
</MvIF>
</MvIF>
<MvDO FILE = "{ g.Module_Feature_CUS_DB }" NAME = "l.ok" VALUE = "{ Customer_Update( BasketList.d.cust_id, Customers.d.login, Customers.d.pw_email, Customers.d.password, Customers.d.ship_fname, Customers.d.ship_lname, Customers.d.ship_email, Customers.d.ship_comp, Customers.d.ship_phone, Customers.d.ship_fax, Customers.d.ship_addr, Customers.d.ship_city, Customers.d.ship_state, Customers.d.ship_zip, Customers.d.ship_cntry, Customers.d.bill_fname, Customers.d.bill_lname, Customers.d.bill_email, Customers.d.bill_comp, Customers.d.bill_phone, Customers.d.bill_fax, Customers.d.bill_addr, Customers.d.bill_city, Customers.d.bill_state, Customers.d.bill_zip, Customers.d.bill_cntry ) }">
</MvIF>
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Log_Action_Save_OrderInformation() }">
</MvIF>
</MvIF>
</MvIF>
<MvFUNCTIONRETURN VALUE = "{ l.ok }">
</MvFUNCTION>
<MvFUNCTION NAME = "Action_CalculateTax" STANDARDOUTPUTLEVEL = "">
<MvASSIGN NAME = "l.ok" VALUE = 1>
<MvASSIGN NAME = "l.continue" VALUE = 1>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ BasketCharges_Delete_Type( g.Basket_id, 'TAX' ) }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ BasketCharges_Delete_Type( g.Basket_id, 'TAX-SUB' ) }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ BasketList_Update_Tax( g.Session_ID, '0' ) }">
<MvIF EXPR = "{ BasketList.d.order_id EQ 0 }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Screen_BasketChanged() }">
<MvELSE>
<MvIF EXPR = "l.continue">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindFirst_Type( 'SYSTEM' ) }">
<MvWHILE EXPR = "{ l.found }">
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.result" VALUE = "{ SystemModule_Action_CalculateTax() }">
<MvIF EXPR = "{ l.result LE 0 }">
<MvASSIGN NAME = "l.continue" VALUE = 0>
<MvIF EXPR = "{ l.result EQ 0 }">
<MvASSIGN NAME = "l.ok" VALUE = 0>
</MvIF>
<MvWHILESTOP>
</MvIF>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindNext_Type( 'SYSTEM' ) }">
</MvWHILE>
</MvIF>
<MvIF EXPR = "{ l.continue }">
<MvIF EXPR = "{ Stores.d.tax_id }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Module_Find_ID( Stores.d.tax_id ) }">
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.module_api_version" VALUE = "{ Module_API_Version() }">
<MvIF EXPR = "{ l.module_api_version LT 2.2 }">
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.tax" VALUE = "{ TaxModule_Calculate_Basket() }">
<MvIF EXPR = "{ l.tax LT 0 }">
<MvASSIGN NAME = "l.ok" VALUE = 0>
<MvELSE>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ BasketList_Update_Tax( g.Session_ID, l.tax ) }">
</MvIF>
<MvELSE>
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.ok" VALUE = "{ TaxModule_Calculate_Basket() }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ BasketList_Update_Tax( g.Session_ID, 0 ) }">
</MvIF>
</MvIF>
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Log_Action_CalculateTax( l.tax ) }">
</MvIF>
</MvIF>
</MvIF>
</MvIF>
<MvFUNCTIONRETURN VALUE = "{ l.ok }">
</MvFUNCTION>
<MvFUNCTION NAME = "Action_CalculateShipping" STANDARDOUTPUTLEVEL = "">
<MvASSIGN NAME = "l.ok" VALUE = 1>
<MvASSIGN NAME = "l.continue" VALUE = 1>
<MvIF EXPR = "{ BasketList.d.order_id EQ 0 }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Screen_BasketChanged() }">
<MvELSE>
<MvIF EXPR = "{ l.ok AND l.continue}">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindFirst_Type( 'SYSTEM' ) }">
<MvWHILE EXPR = "{ l.found }">
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.result" VALUE = "{ SystemModule_Action_CalculateShipping() }">
<MvIF EXPR = "{ l.result LE 0 }">
<MvASSIGN NAME = "l.continue" VALUE = 0>
<MvIF EXPR = "{ l.result EQ 0 }">
<MvASSIGN NAME = "l.ok" VALUE = 0>
</MvIF>
<MvWHILESTOP>
</MvIF>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindNext_Type( 'SYSTEM' ) }">
</MvWHILE>
</MvIF>
<MvIF EXPR = "{ l.continue AND l.ok }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ BasketCharges_Delete_Type( g.Basket_id, 'SHIPPING' ) }">
<MvIF EXPR = "{ len( g.ShippingMethod ) EQ 0 }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ BasketList_Update_Shipping( g.Session_ID, 0, 0, '') }">
<MvELSE>
<MvASSIGN NAME = "l.module_code" VALUE = "{ substring( g.ShippingMethod, 1, ( ':' IN g.ShippingMethod ) - 1 ) }">
<MvASSIGN NAME = "l.module_data" VALUE = "{ substring( g.ShippingMethod, ( ':' IN g.ShippingMethod ) + 1, len( g.ShippingMethod ) ) }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Module_Find_Code( l.module_code ) }">
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.module_api_version" VALUE = "{ Module_API_Version() }">
<MvIF EXPR = "{ l.module_api_version LT 2.2 }">
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.shipping" VALUE = "{ ShippingModule_Calculate_Basket( l.module_data ) }">
<MvIF EXPR = "{ l.shipping LT 0 }">
<MvASSIGN NAME = "l.ok" VALUE = 0>
<MvELSE>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ BasketList_Update_Shipping( g.Session_ID, l.shipping, Modules.d.id, l.module_data ) }">
</MvIF>
<MvELSE>
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.ok" VALUE = "{ ShippingModule_Calculate_Basket( l.module_data ) }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ BasketList_Update_Shipping( g.Session_ID, 0, Modules.d.id, l.module_data ) }">
</MvIF>
</MvIF>
<MvCOMMENT>
|
| New code in v2.22: Adds a call to payment modules to allow them to insert/modify
| shipping charges
|
</MvCOMMENT>
<MvASSIGN NAME = "l.module_code" VALUE = "{ substring( g.PaymentMethod, 1, ( ':' IN g.PaymentMethod ) - 1 ) }">
<MvASSIGN NAME = "l.module_data" VALUE = "{ substring( g.PaymentMethod, ( ':' IN g.PaymentMethod ) + 1, len( g.PaymentMethod ) ) }">
<MvIF EXPR = "{ len( l.module_code ) }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ Module_Find_Code( l.module_code ) }">
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.module_api_version" VALUE = "{ Module_API_Version() }">
<MvIF EXPR = "{ l.module_api_version GE 2.22 }">
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.ok" VALUE = "{ PaymentModule_Manipulate_Shipping( l.module_data ) }">
</MvIF>
</MvIF>
</MvIF>
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Log_Action_CalculateShipping( l.shipping ) }">
</MvIF>
</MvIF>
</MvIF>
</MvIF>
<MvFUNCTIONRETURN VALUE = "{ l.ok }">
</MvFUNCTION>
<MvFUNCTION NAME = "Action_AuthorizePayment" STANDARDOUTPUTLEVEL = "">
<MvASSIGN NAME = "l.ok" VALUE = 1>
<MvASSIGN NAME = "l.continue" VALUE = 1>
<MvIF EXPR = "{ BasketList.d.order_id EQ 0 }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Screen_BasketChanged() }">
<MvELSE>
<MvIF EXPR = "l.continue">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindFirst_Type( 'SYSTEM' ) }">
<MvWHILE EXPR = "{ l.found }">
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.result" VALUE = "{ SystemModule_Action_AuthorizePayment() }">
<MvIF EXPR = "{ l.result LE 0 }">
<MvASSIGN NAME = "l.continue" VALUE = 0>
<MvIF EXPR = "{ l.result EQ 0 }">
<MvASSIGN NAME = "l.ok" VALUE = 0>
</MvIF>
<MvWHILESTOP>
</MvIF>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindNext_Type( 'SYSTEM' ) }">
</MvWHILE>
</MvIF>
<MvIF EXPR = "{ l.continue }">
<MvLOCKFILE FILE = "{ g.MerchantPath $ BasketList.d.session_id }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ BasketList_FindSession( BasketList.d.session_id ) }">
<MvIF EXPR = "{ ( NOT l.found ) OR ( NOT BasketList.d.order_id ) OR ( BasketList.d.order_proc ) }">
<MvASSIGN NAME = "g.Data_Entry_Error" VALUE = 1>
<MvDO FILE = "{ g.Store_Module_UI }" NAME = "l.ok" VALUE = "{ UIModule_OrderAlreadyProcessed() }">
<MvELSE>
<MvASSIGN NAME = "l.module_id" VALUE = 0>
<MvASSIGN NAME = "l.module_code" VALUE = "{ substring( g.PaymentMethod, 1, ( ':' IN g.PaymentMethod ) - 1 ) }">
<MvASSIGN NAME = "l.module_data" VALUE = "{ substring( g.PaymentMethod, ( ':' IN g.PaymentMethod ) + 1, len( g.PaymentMethod ) ) }">
<MvIF EXPR = "{ len( l.module_code ) }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.module_id" VALUE = "{ Module_Find_Code( l.module_code ) }">
</MvIF>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.total" VALUE = "{ Basket_Total( g.Session_ID ) }">
<MvIF EXPR = "{ ( l.module_id EQ 0 ) AND ( l.total NE 0 ) }">
<MvLOCALIZED NAME = "l.error" ID = "MER-MER-00006">
<MvLOCALIZED-TEXT LANGUAGE = "en-US">Invalid Payment Module</MvLOCALIZED-TEXT>
<MvLOCALIZED-TEXT LANGUAGE = "de-DE">Ung�ltiges Zahlungsmodul</MvLOCALIZED-TEXT>
</MvLOCALIZED>
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Error( 'MER-MER-00005', l.error ) }">
</MvIF>
<MvIF EXPR = "{ l.ok AND ( l.total GT 0 ) AND l.module_id }">
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.valid" VALUE = "{ PaymentModule_Payment_Validate( l.module_data ) }">
<MvIF EXPR = "{ NOT l.valid }">
<MvASSIGN NAME = "g.Data_Entry_Error" VALUE = 1>
<MvDO FILE = "{ g.Store_Module_UI }" NAME = "l.ok" VALUE = "{ UIModule_Invalid_Payment() }">
<MvELSE>
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.pay_data" VALUE = "{ PaymentModule_Authorize( l.module_data, l.total ) }">
<MvIF EXPR = "{ NOT l.pay_data }">
<MvASSIGN NAME = "g.Authorization_Failure" VALUE = 1>
<MvDO FILE = "{ g.Store_Module_UI }" NAME = "l.ok" VALUE = "{ UIModule_Authorization_Failure() }">
</MvIF>
</MvIF>
</MvIF>
<MvIF EXPR = "{ l.ok AND ( NOT g.Authorization_Failure ) AND ( NOT g.Data_Entry_Error ) }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.ok" VALUE = "{ BasketList_Update_Payment( g.Session_ID, l.module_id, l.pay_data ) }">
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.total" VALUE = "{ Basket_Total( g.Session_ID ) }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.order_id" VALUE = "{ Order_Create_From_Basket( g.Session_ID, l.total ) }">
<MvIF EXPR = "{ l.order_id }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindFirst_Type( 'FULFILLMENT' ) }">
<MvWHILE EXPR = "{ l.ok AND l.found }">
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.ok" VALUE = "{ FulfillmentModule_ProcessOrder() }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindNext_Type( 'FULFILLMENT' ) }">
</MvWHILE>
</MvIF>
</MvIF>
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Library_Utilities }" NAME = "l.ok" VALUE = "{ Log_Action_AuthorizePayment( l.order_id, l.total ) }">
</MvIF>
</MvIF>
</MvIF>
</MvLOCKFILE>
<MvIF EXPR = "{ g.Authorization_Failure }">
<MvASSIGN NAME = "g.Data_Entry_Error" VALUE = 1>
</MvIF>
</MvIF>
</MvIF>
<MvFUNCTIONRETURN VALUE = "{ l.ok }">
</MvFUNCTION>
<MvFUNCTION NAME = "Action_Customer_Upsell" STANDARDOUTPUTLEVEL = "">
<MvASSIGN NAME = "l.ok" VALUE = "1">
<MvDO FILE = "{ g.Module_Version }" NAME = "l.isEnabled" VALUE = "{ IsEnabled( 'USL' ) }">
<MvIF EXPR = "{ l.isEnabled }">
<MvDO FILE = "{ g.Module_Feature_USL_DB }" NAME = "l.upsell_product" VALUE = "{ Upsell_Find_Eligible_Product( g.Session_ID ) }">
<MvIF EXPR = "{ l.upsell_product }">
<MvDO FILE = "{ g.Module_Feature_USL_DB }" NAME = "l.ok" VALUE = "{ UpsellOptions_Find() }">
<MvASSIGN NAME = "l.multiple_products" VALUE = "{ len( gettoken( l.upsell_product, ',', 2 ) ) }">
<MvASSIGN NAME = "g.Upsell_Product" VALUE = "{ l.upsell_product }">
<MvIF EXPR = "{ l.multiple_products }">
<MvDO FILE = "{ g.Store_Module_UI }" NAME = "l.ok" VALUE = "{ UIModule_Upsell_Multiple( l.upsell_product ) }">
<MvELSE>
<MvDO FILE = "{ g.Store_Module_UI }" NAME = "l.ok" VALUE = "{ UIModule_Upsell( l.upsell_product ) }">
</MvIF>
<MvELSE>
<MvDO FILE = "{ g.Store_Module_UI }" NAME = "l.ok" VALUE = "{ UIModule_Order_PaymentShipping() }">
</MvIF>
<MvELSE>
<MvDO FILE = "{ g.Store_Module_UI }" NAME = "l.ok" VALUE = "{ UIModule_Order_PaymentShipping() }">
</MvIF>
<MvASSIGN NAME = "g.Data_Entry_Error" VALUE = "1">
<MvFUNCTIONRETURN VALUE = "{ l.ok }">
</MvFUNCTION>
<MvFUNCTION NAME = "Action_New" STANDARDOUTPUTLEVEL = "">
<MvASSIGN NAME = "l.ok" VALUE = 1>
<MvASSIGN NAME = "l.continue" VALUE = 1>
<MvIF EXPR = "l.continue">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindFirst_Type( 'SYSTEM' ) }">
<MvWHILE EXPR = "{ l.found }">
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.result" VALUE = "{ SystemModule_Action_New() }">
<MvIF EXPR = "{ l.result LE 0 }">
<MvASSIGN NAME = "l.continue" VALUE = 0>
<MvIF EXPR = "{ l.result EQ 0 }">
<MvASSIGN NAME = "l.ok" VALUE = 0>
</MvIF>
<MvWHILESTOP>
</MvIF>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindNext_Type( 'SYSTEM' ) }">
</MvWHILE>
</MvIF>
<MvFUNCTIONRETURN VALUE = "{ l.ok }">
</MvFUNCTION>
<MvFUNCTION NAME = "Store_Screen_New" STANDARDOUTPUTLEVEL = "">
<MvASSIGN NAME = "l.ok" VALUE = 1>
<MvDO FILE = "{ g.Store_Module_UI }" NAME = "l.ok" VALUE = "{ UIModule_NewStoreScreen_Begin() }">
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindFirst_Type( 'SYSTEM' ) }">
<MvWHILE EXPR = "{ l.found }">
<MvDO FILE = "{ g.Module_Root $ Modules.d.module }" NAME = "l.result" VALUE = "{ SystemModule_Screens() }">
<MvIF EXPR = "{ l.result LE 0 }">
<MvASSIGN NAME = "l.continue" VALUE = 0>
<MvIF EXPR = "{ l.result EQ 0 }">
<MvASSIGN NAME = "l.ok" VALUE = 0>
</MvIF>
<MvWHILESTOP>
</MvIF>
<MvDO FILE = "{ g.Library_DB }" NAME = "l.found" VALUE = "{ StoreModule_FindNext_Type( 'SYSTEM' ) }">
</MvWHILE>
</MvIF>
<MvIF EXPR = "{ l.ok }">
<MvDO FILE = "{ g.Store_Module_UI }" NAME = "l.ok" VALUE = "{ UIModule_NewStoreScreen_End() }">
</MvIF>
<MvFUNCTIONRETURN VALUE = "{ l.ok }">
</MvFUNCTION>