403Webshell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/home/rmlac2fmr/public_html/Merchant2/4.00/merchant.mv
<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>&nbsp;&nbsp;Action = %action%<BR>&nbsp;&nbsp;Screen = %screen%</MvLOCALIZED-TEXT>
				<MvLOCALIZED-TEXT LANGUAGE = "de-DE"><B>Unbekannter Fehler</B><BR><BR>&nbsp;&nbsp;Ausf�hrung = %action%<BR>&nbsp;&nbsp;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>

Youez - 2016 - github.com/yon3zu
LinuXploit