Sign In
   Developer Productivity PKGs
Classic .NET Website Design
Accounting Suite for IBM i

Another OO Web Page Content Example

a working example within an OO pattern website



the Essence

In this technical article, you can examine a working Content Page example, along with the c# and XHTML source code behind the component. This example is in production and contains references to an independent and custom base page class and master page.  It takes advantage of the ASP.NET Framework and OO programming, plus it's not just theory.

Why are we here?

Good reasons for reading further...

  • To see how little c# is required in the Content Page code-behind

  • To notice that there is no c# or XHTML required in the content page to handle mobile 

  • Tablet, Mobile, and Theatre Views are accomplished via a single master page c# code-behind (along with appropriately written XHTML in the content page). 

  • We offer a product with c# source code for license that includes everything you need to start tweaking your existing your web pages for mobile within hours.  Here are page links for more info on our Mobile ASPX - Tegratecs Code Package™--> Visual Studio Project TemplatesFeatures and Benefits,  Product Contents SummaryIntroduction.

  • to match the functions of a working content page on this website (User Tutorials Cloud Subscription Offer on financialportrait.com) with the small amount of standardized c# it takes to do the triggering

  • To gain at least some insight to the implied web project template and structure, which largely eliminates the requirements for an MVC or responsive rewrite for existing web forms sites

  • You are evaluating website design or architectural patterns

  • To notice how many of the cool and advanced features can be separated and isolated without duplication, and where they exist code-wise outside of the content page in our template pattern.  By the way, we offer this complete template for license in our Tegratecs OO Pattern Website Base™.

  • This is a web forms example that works with web application projects and website projects, in C# or vb.net and even some 3rd party languages

  • Even though the web forms project types are being dismissed by some at this juncture, an OO web template just might prove more than satisfactory for your application design pattern (or architectural) interests, while then making it significantly easier for agile focus on user requirements



code-behind for the Content Page with this design pattern
Here is all of the c# code required for the Content Page in this OO framework.


web page code-behind written in c#


//***********************************************************

//            Tegratecs OO Pattern Website Base™            *

//                   Supplemental Example                   *

//                      Version 10.1                        *

//***********************************************************

//  This source code contains confidential and proprietary  *

//  information of Tegratecs Development Corp.®             *

//                                                          *

//  Original Date Written: 01/31/2021                       *

//  v10.1 Creation Date:   01/31/2021                       *

//                                                          *

//      Copyright 2022 by Tegratecs Development Corp.       *

//      Copyright 2023 by Tegratecs Development Corp.       *

//                   All Rights Reserved.                   *

//               Tegratecs Development Corp.®               *

//                1320 Tower Road, Suite 118                *

//                  Schaumburg, IL  60173                   *

//                      800-739-3777                        *

//                                                          *

//***********************************************************

// Module or Component:                                     *

// UserTutorialsSubscriptionOffer1Secured.cs                *

//   Tegratecs OO Pattern Website Base-Supplemental Example *

// 2023-01-18                                               *

//   Refactor to Base, PayPal Purchase routines             *

//***********************************************************

 

using System;

using System.Configuration;

using System.Web.UI;

 

 

namespace nsFinPortWSv10

{

    public partial class UserTutorialsSubscriptionOffer1Secured : WebUIPageExtendedForTegratecsWebBase

    {

        // begin standard global variables for the web page class

        private String strThisPageURL;

        private System.Collections.ArrayList arrlstPagesVisited;

        private System.Collections.ArrayList arrlstPagesVisitedLastControl;

 

        // master page    

        SiteLevelMasterPageCSv4 MyMasterPage;

 

        //    When using 1 master page, the page life-cycle events are intertwined between the content page and the master page

        //    Here is the sequence of events...

 

        //  =========================

        //    master Page_Init

        //  -------------------------

        //    content Page_Init

        //    content Page_Pre_Render

        //    content Page_Load

        //  -------------------------

        //    master Page_Load

        //    master Page_Pre-Render

        //    master Page_Unload

        //  -------------------------

        //    content Page_Unload 

        //  =========================

 

 

        //*********************************************************************************************************************

        //  Use Page_Init routine to force proper usage of SSL on secured and private pages (done in base.srPage_Init2_FPStd)

        //*********************************************************************************************************************

        protected void Page_Init(Object sender, EventArgs e)

        {

            // populate all of these global variables inside of the master page at this time (master already ran it's Page_Init)

            MyMasterPage = this.Master as SiteLevelMasterPageCSv4;

            // continue with the string builder object already in progress from master page

            base.strbldrEvtLogBase = MyMasterPage.strbldrMasterPageEvtLog;

            // best source for intSiteIndex is from master page code behind

            base.intSiteIndex = MyMasterPage.intSiteIndexMP;

            this.strThisPageURL = MyMasterPage.strThisPageURL;

 

            // a check will be done for URL consistency here as a part of the standard

            base.srPage_Init2_FPStd(ref strThisPageURL, ref arrlstPagesVisited, ref arrlstPagesVisitedLastControl);

 

            MyMasterPage.arrlstPagesVisited = arrlstPagesVisited;

            MyMasterPage.arrlstPagesVisitedLastControl = arrlstPagesVisitedLastControl;

 

            MyMasterPage.boolSignInStatus = base.clsCustCtcActs.boolpropSignInStatus;

            MyMasterPage.strContactGreetingMsg = base.clsCustCtcActs.strpropContactGreetingMsg;

            MyMasterPage.strMemberStatus = base.clsCustCtcActs.strpropMemberStatus;

            MyMasterPage.strInternetContactUserID = base.clsCustCtcActs.strpropInternetContactUserID;

            MyMasterPage.strPasswordType = base.clsCustCtcActs.strpropPasswordType;

            MyMasterPage.intContactUniqueID = base.clsCustCtcActs.intpropContactUniqueID;

            MyMasterPage.boolFPUserCodeExists = base.clsCustCtcActs.boolpropFPUserCodeExists;

 

 

            // add event handler for msg box button (on master page's pop-up message box, which

            //   could be used within srStdDigitalResourceAccessWrapper)

            MyMasterPage.cmdevnhdlMsgBoxOKClicked += this.btnMsgBoxOKFromMasterPage;

        }

 

 

        //******************************************************

        //  Page Load Routine (based ASP.NET page cycle event)

        //******************************************************

        protected void Page_Load(Object sender, EventArgs e)

        {

            base.srPage_Load_Part_1_FPStd(strThisPageURL, ref arrlstPagesVisited, ref arrlstPagesVisitedLastControl);

 

            if (Page.IsPostBack == false)

            {

                //

                // Called the first time that the page is loaded or if a Redirect is used regardless of previously displayed page

 

                // set default PayPal button area index (a string type, sorry, used to form UI control names)

                ViewState["ssv_strPayPalButtonAreaIdx"] = "1";

                ViewState["ssv_strErrorMessageTable"] = "tblErrorList" + ViewState["ssv_strPayPalButtonAreaIdx"].ToString();

 

                // essentially just .focus() on control causing submit if there was one

                base.srPage_Load_Part_2_FPStd(strThisPageURL, ref arrlstPagesVisited, ref arrlstPagesVisitedLastControl);

 

                base.mCheckIBMiSQLCnnSvc_WebUIPageExtended( "hihAllowDb2iTrxStatus",

                                                            "hihAllowPayPalButtonsDependentUponIBMiSerialNumber");

            }

            else

            {

                // Page.IsPostBack occurs essentially when a page is redisplayed (unless a Redirect is issued in the code)

                // Occurs even after timeout on button click event

                // Occurs even after browser's back button was used to get to the page where a button was clicked

                //  (however, careful - viewstate returned is old in this case - server did not see this page last)

 

                // attach values from script upon payment to session variables

 

                if ((hihOrderID.Value != String.Empty && hihOrderID.Value != "undefined") &&

                    (hihPurchaseConfID.Value != String.Empty && hihPurchaseConfID.Value != "undefined"))

                {

                    if (hihLine1Qty.Value != String.Empty)

                        Session["ssvstrLine1Qty"] = hihLine1Qty.Value;

                    else

                        Session["ssvstrLine1Qty"] = 0;

                    Session["ssvstrLine1SKU"] = hihLine1SKU.Value;

                    Session["ssvstrLine1OvrDesc"] = hihLine1OvrDesc.Value;

                    Session["ssvstrLine1Price"] = hihLine1Price.Value;

                    Session["ssvstrLine1UOM"] = hihLine1UOM.Value;

                    Session["ssvstrLine1CurrCode"] = hihLine1CurrCode.Value;

 

                    if (hihLine2Qty.Value != String.Empty)

                        Session["ssvstrLine2Qty"] = hihLine2Qty.Value;

                    else

                        Session["ssvstrLine2Qty"] = 0;

                    Session["ssvstrLine2SKU"] = hihLine2SKU.Value;

                    Session["ssvstrLine2OvrDesc"] = hihLine2OvrDesc.Value;

                    Session["ssvstrLine2Price"] = hihLine2Price.Value;

                    Session["ssvstrLine2UOM"] = hihLine2UOM.Value;

                    Session["ssvstrLine2CurrCode"] = hihLine2CurrCode.Value;

 

                    if (hihLine3Qty.Value != String.Empty)

                        Session["ssvstrLine3Qty"] = hihLine3Qty.Value;

                    else

                        Session["ssvstrLine3Qty"] = 0;

                    Session["ssvstrLine3SKU"] = hihLine3SKU.Value;

                    Session["ssvstrLine3OvrDesc"] = hihLine3OvrDesc.Value;

                    Session["ssvstrLine3Price"] = hihLine3Price.Value;

                    Session["ssvstrLine3UOM"] = hihLine3UOM.Value;

                    Session["ssvstrLine3CurrCode"] = hihLine3CurrCode.Value;

 

                    if (hihLine4Qty.Value != String.Empty)

                        Session["ssvstrLine4Qty"] = hihLine4Qty.Value;

                    else

                        Session["ssvstrLine4Qty"] = 0;

                    Session["ssvstrLine4SKU"] = hihLine4SKU.Value;

                    Session["ssvstrLine4OvrDesc"] = hihLine4OvrDesc.Value;

                    Session["ssvstrLine4Price"] = hihLine4Price.Value;

                    Session["ssvstrLine4UOM"] = hihLine4UOM.Value;

                    Session["ssvstrLine4CurrCode"] = hihLine4CurrCode.Value;

 

                    if (hihLine5Qty.Value != String.Empty)

                        Session["ssvstrLine5Qty"] = hihLine5Qty.Value;

                    else

                        Session["ssvstrLine5Qty"] = 0;

                    Session["ssvstrLine5SKU"] = hihLine5SKU.Value;

                    Session["ssvstrLine5OvrDesc"] = hihLine5OvrDesc.Value;

                    Session["ssvstrLine5Price"] = hihLine5Price.Value;

                    Session["ssvstrLine5UOM"] = hihLine5UOM.Value;

                    Session["ssvstrLine5CurrCode"] = hihLine5CurrCode.Value;

 

                    Session["ssvstrTotalQuantity"] = hihTotalQuantity.Value;

 

                    Session["ssvstrOrderID"] = hihOrderID.Value;

                    Session["ssvstrOrderCreateDateTimeStamp"] = hihOrderCreateDateTimeStamp.Value;

                    Session["ssvstrTrxStatus"] = hihTrxStatus.Value;

                    Session["ssvintPurchaseUnitsCount"] = hihPurchaseUnitsCount.Value;

                    Session["ssvintPurchaseUnitItemsCount"] = hihPurchaseUnitItemsCount.Value;

 

                    Session["ssvstrPayerGivenName"] = hihPayerGivenName.Value;

                    Session["ssvstrPayerSurName"] = hihPayerSurName.Value;

 

                    String strPayerNameSuffixWork = hihPayerNameSuffix.Value;

                    if (strPayerNameSuffixWork != "undefined" && strPayerNameSuffixWork != String.Empty)

                        Session["ssvstrPayerNameSuffix"] = ", " + hihPayerNameSuffix.Value;

                    else

                        Session["ssvstrPayerNameSuffix"] = String.Empty;

 

                    Session["ssvstrPayerID"] = hihPayerID.Value;

                    Session["ssvstrPayerPostalCode"] = hihPayerPostalCode.Value;

                    Session["ssvstrPayerEmailAddress"] = hihPayerEmailAddress.Value;

 

                    // Business Name data element in this interface from PayPal apparently no longer works

                    String strPayerBusinessNameWork = hihPayerBusinessName.Value;

                    if (strPayerBusinessNameWork != "undefined")

                        Session["ssvstrPayerBusinessName"] = hihPayerBusinessName.Value;

                    else

                        Session["ssvstrPayerBusinessName"] = String.Empty;

 

 

                    // Phone Number data element in this interface from PayPal apparently no longer works

                    Session["ssvstrPayerPhoneNumber"] = hihPayerPhoneNumber.Value;

 

                    Session["ssvstrShipToAddressLine1"] = hihShipToAddressLine1.Value;

 

                    String strShipToAddressLine2Work = hihShipToAddressLine2.Value;

                    if (strShipToAddressLine2Work != "undefined")

                        Session["ssvstrShipToAddressLine2"] = hihShipToAddressLine2.Value;

                    else

                        Session["ssvstrShipToAddressLine2"] = String.Empty;

 

                    Session["ssvstrShipToAddressLine3"] = String.Empty;

                    Session["ssvstrShipToCityOrAdminArea2"] = hihShipToCityOrAdminArea2.Value;

                    Session["ssvstrShipToStateOrAdminArea1"] = hihShipToStateOrAdminArea1.Value;

                    Session["ssvstrShipToPostalCode"] = hihShipToPostalCode.Value;

                    Session["ssvstrShipToCountry"] = hihShipToCountry.Value;

                    Session["ssvstrShipToAdminArea3"] = hihShipToAdminArea3.Value;

                    Session["ssvstrShipToAdminArea4"] = hihShipToAdminArea4.Value;

 

                    Session["ssvstrPurchaseConfTotalAmount"] = hihPurchaseConfTotalAmount.Value;

                    Session["ssvstrPurchaseConfCurrCode"] = hihPurchaseConfCurrCode.Value;

                    Session["ssvstrPurchaseConfID"] = hihPurchaseConfID.Value;

                    Session["ssvstrPurchaseConfTotalQty"] = Convert.ToString(Convert.ToInt32(Session["ssvstrLine1Qty"].ToString()) +

                                                                             Convert.ToInt32(Session["ssvstrLine2Qty"].ToString()) +

                                                                             Convert.ToInt32(Session["ssvstrLine3Qty"].ToString()) +

                                                                             Convert.ToInt32(Session["ssvstrLine4Qty"].ToString()) +

                                                                             Convert.ToInt32(Session["ssvstrLine5Qty"].ToString()));

 

                    Session["ssvstrPurchaseDetailsJSON"] = hihPurchaseDetailsJSON.Value;

                   

                    // in the case of multiple purchase areas, determining the proper error

                    //   message table to use got tricky, this was the best way to soft-code

                    Session["ssv_strPayPalButtonContainerName"] = hihPayPalButtonContainerName.Value;

                    ViewState["ssv_strPayPalButtonAreaIdx"] = hihPayPalButtonContainerName.Value.Substring(hihPayPalButtonContainerName.Value.Length - 1, 1);

                    ViewState["ssv_strErrorMessageTable"] = "tblErrorList" + ViewState["ssv_strPayPalButtonAreaIdx"].ToString();

 

 

                    //*************************************************************************************************

                    // inz hidden input fields (populated by client side script) after capture into session variables

                    //*************************************************************************************************

                    hihLine1Qty.Value = String.Empty;

                    hihLine1SKU.Value = String.Empty;

                    hihLine1OvrDesc.Value = String.Empty;

                    hihLine1Price.Value = String.Empty;

                    hihLine1UOM.Value = String.Empty;

                    hihLine1CurrCode.Value = String.Empty;

 

                    hihLine2Qty.Value = String.Empty;

                    hihLine2SKU.Value = String.Empty;

                    hihLine2OvrDesc.Value = String.Empty;

                    hihLine2Price.Value = String.Empty;

                    hihLine2UOM.Value = String.Empty;

                    hihLine2CurrCode.Value = String.Empty;

 

                    hihLine3Qty.Value = String.Empty;

                    hihLine3SKU.Value = String.Empty;

                    hihLine3OvrDesc.Value = String.Empty;

                    hihLine3Price.Value = String.Empty;

                    hihLine3UOM.Value = String.Empty;

                    hihLine3CurrCode.Value = String.Empty;

 

                    hihLine4Qty.Value = String.Empty;

                    hihLine4SKU.Value = String.Empty;

                    hihLine4OvrDesc.Value = String.Empty;

                    hihLine4Price.Value = String.Empty;

                    hihLine4UOM.Value = String.Empty;

                    hihLine4CurrCode.Value = String.Empty;

 

                    hihLine5Qty.Value = String.Empty;

                    hihLine5SKU.Value = String.Empty;

                    hihLine5OvrDesc.Value = String.Empty;

                    hihLine5Price.Value = String.Empty;

                    hihLine5UOM.Value = String.Empty;

                    hihLine5CurrCode.Value = String.Empty;

 

                    hihTotalQuantity.Value = String.Empty;

 

                    hihOrderID.Value = String.Empty;

                    hihOrderCreateDateTimeStamp.Value = String.Empty;

                    hihTrxStatus.Value = String.Empty;

                    hihPurchaseUnitsCount.Value = String.Empty;

                    hihPurchaseUnitItemsCount.Value = String.Empty;

                    hihPayerGivenName.Value = String.Empty;

                    hihPayerSurName.Value = String.Empty;

 

                    hihPayerNameSuffix.Value = String.Empty;

 

                    hihPayerID.Value = String.Empty;

                    hihPayerPostalCode.Value = String.Empty;

                    hihPayerEmailAddress.Value = String.Empty;

 

                    // Business Name data element from PayPal is apparently broken

                    hihPayerBusinessName.Value = String.Empty;

 

                    // Phone Number data element from PayPal is apparently broken

                    hihPayerPhoneNumber.Value = String.Empty;

 

                    hihShipToAddressLine1.Value = String.Empty;

                    hihShipToAddressLine2.Value = String.Empty;

 

                    // Session["ssvstrShipToAddressLine3"] = String.Empty;

                    hihShipToCityOrAdminArea2.Value = String.Empty;

                    hihShipToStateOrAdminArea1.Value = String.Empty;

                    hihShipToPostalCode.Value = String.Empty;

                    hihShipToCountry.Value = String.Empty;

                    hihShipToAdminArea3.Value = String.Empty;

                    hihShipToAdminArea4.Value = String.Empty;

 

                    hihPurchaseConfTotalAmount.Value = String.Empty;

                    hihPurchaseConfCurrCode.Value = String.Empty;

                    hihPurchaseConfID.Value = String.Empty;

                    hihPurchaseConfTotalQty.Value = String.Empty;

 

                    hihPurchaseDetailsJSON.Value = String.Empty;

                   

                    // Session["ssv_strUTCE_sbsdlkey"] = String.Empty;  // need to populate with random number

                    hihOrderID.Value = String.Empty;

                    hihPurchaseConfID.Value = String.Empty;

 

                    hihPayPalButtonContainerName.Value = String.Empty;

 

                    base.mPurchase_WebUIPageExtended(

                        strThisPageURL,

                        Session["ssvstrPurchaseConfID"].ToString(),

                        Session["ssvstrOrderID"].ToString(),

                        Session["ssv_strPayPalButtonContainerName"].ToString(),

                        "", "UserTutorialsSubscriptionDownloads1Secured.aspx",

                        "UTCE_sbsdlkey",

                        "User Tutorials Subscription Environment",

                        "User Tutorials Subscription Environment",

                        "Thank you for your subscription purchase to the Financial Portrait User Tutorials Cloud Environment!<br /><br />");

 

                }

                else

                {

                    base.mCheckIBMiSQLCnnSvc_WebUIPageExtended( "hihAllowDb2iTrxStatus",

                                                                "hihAllowPayPalButtonsDependentUponIBMiSerialNumber");

                }

 

            }

 

            base.srPage_LoadFinish_FPStd(strThisPageURL);

            // master page load will follow so that is where it is easiest to test for whether to display the custom event log

        }

 

 

        //**************************************************************************************************

        //  this routine is run each time this page is displayed (after the web server sends out the page)

        //  do not attempt to verify results of this routine by displaying something in the page

        //    (because the display of the page has already occurred by the time this routine runs)

        //**************************************************************************************************

        protected void Page_UnLoad(Object sender, EventArgs e)

        {

            base.srPage_UnLoad2_FPStd(strThisPageURL);

        }

 

 

        protected void btnContactUs_Click(Object sender, EventArgs e)

        {

            clsFdnWebCS.stcAddToSsttEvnLog2(strThisPageURL, clsFdnWebCS.stcstrfctGetCtrlID((Control)sender) + "_Click", "85", ref base.strbldrEvtLogBase);

 

            if (Session["ssv_UVPTriggerURL"] != null)

            {

                Session["ssv_UVPTriggerURL2Use"] = Session["ssv_UVPTriggerURL"].ToString();

                Session["ssv_UVPTriggerImage2Use"] = Session["ssv_UVPTriggerImage"].ToString();

            }

 

            Response.Redirect(ConfigurationManager.AppSettings["apkContactMePage"].ToString());

        }

 

 

        protected void btnCheckIn_Click(Object sender, EventArgs e)

        {

            clsFdnWebCS.stcAddToSsttEvnLog2(strThisPageURL, clsFdnWebCS.stcstrfctGetCtrlID(sender as Control) + "_Click", "85", ref base.strbldrEvtLogBase);

            Response.Redirect(ConfigurationManager.AppSettings["apkContactRegistrationPage"]);

        }

 

 

        //********************************************************************************************************************

        // If user clicks on Back button, then Page_Init, Page_Load and then btnBack_Click are run (followed by Page_Unload)

        //********************************************************************************************************************

        protected void btnBack_Click(Object sender, EventArgs e)

        {

            clsFdnWebCS.stcAddToSsttEvnLog2(strThisPageURL, clsFdnWebCS.stcstrfctGetCtrlID(sender as Control) + "_Click", "85", ref base.strbldrEvtLogBase);

            clsStdPageNavOnlyCS.stcRedirectToPreviousPage(strThisPageURL, ref arrlstPagesVisited, ref arrlstPagesVisitedLastControl);

        }

 

 

        // Take over for master page message box update panel

        // Find reference to the pnlMsgBox object

        // Record error acknowledgment/override within session variable based on error message text

        // Reset error highlighting

 

        protected void btnMsgBoxOKFromMasterPage(Object sender, EventArgs e, String strErrMsg)

        {

            clsFdnWebCS.stcAddToSsttEvnLog2(strThisPageURL, clsFdnWebCS.stcstrfctGetCtrlID(sender as Control) + "_Click", "85", ref base.strbldrEvtLogBase);

 

            System.Web.UI.Control ctrlControlObjRef = new Control();

            base.srGetControlObjectReference_FPStd("pnlMsgBox",

                this.Page as System.Web.UI.Control, ref ctrlControlObjRef);

 

            System.Web.UI.WebControls.Panel pnlID = new System.Web.UI.WebControls.Panel();

            pnlID = ctrlControlObjRef as System.Web.UI.WebControls.Panel;

 

            pnlID.Enabled = false;

            pnlID.Visible = false;

 

            // re-focus on button that originally triggered the error

            if (ViewState["vsv_strLastControlFocus"] != null)

            {

                System.Web.UI.Control webuictrlObject = new Control();

                base.srGetAnyWebUIControlObjRef_FPStd(ViewState["vsv_strLastControlFocus"].ToString(), ref webuictrlObject);

                webuictrlObject.Focus();

            }

 

        }

 

 

    }

 

 

}

 

 

 







Specifying the UI controls in the Content Page UI controls for the web page can be specified in XHTML and stored in the .aspx source file.  We are using the XHTML 5 Target Schema for Validation.


.aspx (view) source written
in XHTML


<%@ Page Language="C#" MasterPageFile="~/SiteLevelMasterPageCSv4.Master" AutoEventWireup="true"

       Inherits="nsFinPortWSv10.UserTutorialsSubscriptionOffer1Securedss" Title="Financial Portrait User Tutorials Cloud Environment Subscription Offer"

       CodeBehind="UserTutorialsSubscriptionOffer1Securedss.aspx.cs" %>

 

<asp:Content id="HdgViaContentPortion" runat="server" contentplaceholderid="head">

</asp:Content>

 

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">

 

<!--//***********************************************************-->

<!--//            Tegratecs OO Pattern Website Base™            *-->

<!--//                   Supplemental Example                   *-->

<!--//                      Version 10.1                        *-->

<!--//***********************************************************-->

<!--//  This source code contains confidential and proprietary  *-->

<!--//  information of Tegratecs Development Corp.®             *-->

<!--//                                                          *-->

<!--//  Original Date Written: 01/31/2021  (v10.1)              *-->

<!--//                                                          *-->

<!--//      Copyright 2022 by Tegratecs Development Corp.       *-->

<!--//      Copyright 2023 by Tegratecs Development Corp.       *-->

<!--//                   All Rights Reserved.                   *-->

<!--//               Tegratecs Development Corp.®               *-->

<!--//                1320 Tower Road, Suite 118                *-->

<!--//                  Schaumburg, IL  60173                   *-->

<!--//                      800-739-3777                        *-->

<!--//                                                          *-->

<!--//***********************************************************-->

<!--// Module or Component:                                     *-->

<!--// UserTutorialsSubscriptionOffer1Secured.aspx              *-->

<!--//   Tegratecs OO Pattern Website Base-Supplemental Example *-->

<!--// 2023-01-18                                               *-->

<!--//   Refactor to Base, PayPal Purchase routines             *-->

<!--//***********************************************************-->

 

 

    <script type="text/javascript"

        src="https://www.paypal.com/sdk/js?client-id=AbSZsQADl6eHG86FhXCW5hsJBkMbJI48-AQbQoVFvtJfvjY9hH0A1ysLNJB_iGBH_PStKmme6pMwB-wz&intent=capture&disable-funding=credit">

    </script>   

 

 

    <div class="centered_container_left_aligned_text" style="font-family:Arial; font-size:larger; font-weight:400; line-height:1.5em; padding:10px;">

 

 

    <div class="centered_container_left_aligned_text" style="width:98%; max-width: 850px; line-height:normal;">

        <h2><span style="padding:0px; margin:0px;">Financial Portrait User Tutorials<br />Online Offers for Cloud Environment Subscription</span></h2>

    </div>

 

    <div class="centered_container_left_aligned_text" style="width:99%; max-width:775px; padding:2px 5px 5px 5px;">

 

        <div>

            <img src="images/FPSite/iStock-139995215-XLarge-Licensed-Sofie-Resized-425w.jpg"

            class="img_float_right" alt="" title="A brighter future awaits"

            style="border-style: groove; color: #000000; border-width:3px; max-width:45%; margin-bottom:20px;" />

 

            <p>A subscription to Financial Portrait in the cloud is a great way to get hands-on interaction with the solution and the smartclient.</p>

 

            <p>Great for evaluating...&nbsp; Or as a training tool or both.&nbsp; Prospects who purchase a tutorial subscription and later license the package will receive a credit.</p>

 

            <img src="images/common/iStock-831711416-Large-NeverStopLearning-Resized-425w.jpg"

            class="img_float_left" alt="" title="Never Stop Learning"

            style="border-style: groove; color: #000000; border-width:3px; max-width:30%; margin-bottom:80px;" />

 

            <p>Please note this is a multi-user enterprise level solution intended for corporations that use the accrual basis of accounting.&nbsp; <img src="images/common/iStock-497478998-XLarge-Resized-425w-B.jpg"

            class="img_float_right" alt="" title="Enterprise level coordination" style="border-style: groove; color: #000000; border-width:3px; max-width:35%; margin-top:10px; margin-right:30px;" />So this

                is a good fit for indviduals seeking training in enterprise-level accounting and bookkeeping. </p>

 

            <br />

            <br />

 

            <div class="centered_container_y_text">

                <ajaxToolkit:CollapsiblePanelExtender ID="ApplicationAreas" runat="Server" 

                        TargetControlID="Section3AllContent"

                        ExpandControlID="Section3TitleOnly"

                        CollapseControlID="Section3TitleOnly"

                        Collapsed="True"

                        TextLabelID="Label3"

                        ExpandedText="(Hide Details...)"

                        CollapsedText="(Show Expanded Details...)"

                        ImageControlID="Image3"

                        ExpandedImage="~/images/common/collapse_blue.jpg"

                        CollapsedImage="~/images/common/expand_blue.jpg"

                        SuppressPostBack="true">

                </ajaxToolkit:CollapsiblePanelExtender>

 

                <asp:Panel ID="Section3TitleOnly" runat="server" BackColor="#59438C" BorderColor="black" BorderStyle="Outset" BorderWidth="2px" CssClass="collapsePanelHeader" Font-Size="Larger">

                    Subscription Terms&nbsp;&nbsp;

                    <asp:Label ID="Label3" runat="server">(Show Expanded Details...)&nbsp;&nbsp;&nbsp;</asp:Label>

                    <asp:Image ID="Image3" runat="server" ImageUrl="~/images/common/expand_blue.jpg" />

                </asp:Panel>

                <asp:Panel ID="Section3AllContent" runat="server" CssClass="collapsePanel">

                    <table cellpadding="10" style="width:100%; border-width:2px; border-style:outset">

                        <tr>

                            <td style="width:100%">

                                <ul class="centered_container_left_aligned_text">

                                    <li style="padding-bottom:.7em;">The subscription period is 4 months.</li>

                                    <li style="padding-bottom:.7em;">We will create a completely separate, multi-user Financial Portrait environment in the cloud, or on one of our IBM i servers for your basically unlimited use via a single IBM i user profile (but it can be shared).&nbsp;             <img src="images/common/150px-IBM_i.png"

                                        class="img_float_left" alt="" title="IBM i for business"

                                        style="border:none; max-width:20%;" />You will be in total control of the database and have access to all of the application software in your subscription (except sending of outbound Positive Pay or ACH transactions of course).&nbsp;&nbsp; &nbsp; </li>

                                    <li style="padding-bottom:.7em;">The initialized state of the data in the environment is synchronized with the tutorial&#39;s step by step method.&nbsp; We can reset the environment or an application area up to 5 times.&nbsp;&nbsp; </li>

                                    <li style="padding-bottom:.7em;">You get a digital PDF copy of each of the fine-tuned, step by step tutorials(s).&nbsp; You get an easy-to-read, nice looking, color hard-copy of each tutorial (and a stand) if you create a Web User ID on financialportrait.com and provide us a physical address in the United States.</li>

                                    <li style="padding-bottom:.7em;">Give us 24 hours to create your environment and credentials.</li>

                                    <li style="padding-bottom:.7em;">The tutorials consist of proprietary and copyright information that is part of the Financial Portrait Software System™, which is owned by Tegratecs Development Corp®.&nbsp; We may ask you to sign a non-disclosure agreement.</li>

                                    <li style="padding-bottom:.7em;">Tutorial copies, whether digital or printed must not be shared or reproduced outside your company in any way.</li>

                                    <li style="padding-bottom:.7em;">A single subscription is intended for use by individuals in 1 end-user company only, so IT vendors, software service providers, accounting software vendors and ISVs are not eligible for this offer.</li>

                                    <li style="padding-bottom:.7em;">Software service providers, education organizations and ISV(s), please contact us.<br /><br /></li>

                                </ul>

                            </td>

                        </tr>

                    </table>

                </asp:Panel>

 

            </div>

 

            <br />

 

            <div class="centered_container_y_text">

                <a href="images/FPsite/fptutssubset/AP User Tutorial V4 - 49TOC.pdf" target="_blank">link to Table of Contents for Accounts Payable Tutorial</a>

                <br /><br />

                <a href="images/FPsite/fptutssubset/AR User Tutorial V4 - 46TOC.pdf" target="_blank">link to Accounts Receivable Table of Contents PDF</a>

                <br /><br />

                <a class="centered_container" href="images/FPsite/fptutssubset/GL User Tutorial V4 - 58TOC.pdf" target="_blank">link to Table of Contents PDF for General Ledger and Financial Statements Report Writing</a>

            </div>

 

            <p>Purchased separately, each tutorial subscription is $225.&nbsp; There is a bundle for all 3 for $525 that also includes access to the Permissions and Controls application area.</p>

 

            <p>Below are the PayPal purchase options.&nbsp; You don&#39;t have to have a PayPal account, but in any case, all credit card information is handled via PayPal.&nbsp; No credit card information or PayPal credentials pass through our servers or are retained in our database for this transaction.&nbsp; </p>

            <p>Upon successful completion of a digital purchase, we will immediately issue keys via email.&nbsp; We&#39;ll need 24 hours to get your private and secure environment ready.&nbsp; See <em>Download Keys Delivery</em> section below for more details.&nbsp; Please see the <em>Subscription Terms</em> section for full offer details.&nbsp; </p>

           

            <!--

                <p>The keys that enable immediate download (directly after purchase) are emailed to the PayPal Account

                holder used with the purchase, and to a second email address, if you are logged in to financialportrait.com under a different email address.&nbsp; Please remember you&#39;ll have to get the smartclient installed on your PC, which requires admin credentials (but it&#39;s pretty easy other than that), or you can rent one of our PCs with the smartclient already installed.&nbsp; While you are doing that, we will be preparing your secure and private environment on our IBM i server which we&#39;ll set up especially for following through the steps of the tutorial.&nbsp; <br /><br />

                </p>

            -->

 

        <div class="centered_container_y_text">

            <ajaxToolkit:CollapsiblePanelExtender ID="DWExtraction" runat="Server" CollapseControlID="Section6TitleOnly" Collapsed="True" CollapsedImage="~/images/common/expand_blue.jpg" CollapsedText="(Show Expanded Details...)" ExpandControlID="Section6TitleOnly" ExpandedImage="~/images/common/collapse_blue.jpg" ExpandedText="(Hide Details...)" ImageControlID="Image6" SuppressPostBack="true" TargetControlID="Section6AllContent" TextLabelID="Label6" />

            <asp:Panel ID="Section6TitleOnly" runat="server" BackColor="#A1A3CC" BorderColor="black" BorderStyle="Outset" BorderWidth="2px" CssClass="collapsePanelHeader" Font-Size="Larger" ForeColor="Black">

                Download Keys Delivery&nbsp;

                <asp:Label ID="Label6" runat="server">(Show Expanded Details...)&nbsp;&nbsp;&nbsp;</asp:Label>

                <asp:Image ID="Image6" runat="server" ImageUrl="~/images/common/expand_blue.jpg" />

            </asp:Panel>

            <asp:Panel ID="Section6AllContent" runat="server" CssClass="collapsePanel">

                <table cellpadding="10" style="width:100%; border-width:2px; border-style:outset">

                    <tr>

                        <td style="width:100%">

                            <ul class="centered_container_left_aligned_text">

                                <li>The keys that enable immediate download (directly after purchase) of the PDF versions of the tutorial(s) and the <em>fps smartclient 10.7 CD</em> are emailed to the PayPal Account holder used with the purchase.<br /><br /></li>

                                <li>If you are logged in to tegratecs.com and your Web User ID has a verified email address that is different, a second set of the keys will be emailed directly to you also.<br /><br /></li>

                                <li>If you don&#39;t have access to the PayPal account holder email address and aren&#39;t logged in to tegratecs.com, please contact us after the purchase to let us know how we can assist you (in getting the keys to you, mailing you a CD and/or tutorial hard copies or by linking accounts via the back office, which may take up to 12 hours depending upon your time zone).<br /><br /></li>

                            </ul>

                        </td>

                    </tr>

                </table>

            </asp:Panel>

        </div>

 

        <br />

 

        </div>

 

        <div style="border:2px; border-style:solid; border-radius:15px; padding:5px; margin:5px; background-color:gray;">

 

        <div class="centered_container_y_text" style="font-weight:bold; font-size:x-large; color:white;">

            Bundle Offer

        </div>

 

        <div style="border:2px; border-style:solid; border-radius:16px; padding:5px; margin:5px; background-color: #F8F8F8;">

 

        <div class="container_ScrollableDiv_ExceptASPGridview" style="width:95%">

            <table id="tblErrorList1" runat="server" class="OutputErrorMessageRelativeWithinTable" enableviewstate="true" style="width:85%; margin-left:auto; margin-right:auto;" visible="false">

                <!-- rows and cells are created and populated as needed at run time -->       

            </table>

        </div>

 

        <br />

           

        <div class="centered_container_y_text" style="width:99%; max-width:640px; min-width:450px;">

            <div id="divpaypalbuttons1preface">

                <span style="color: #554188; font-size:xx-large;">Purchase

                    <em>Bundle</em> HERE at 22% Discount<br /></span>

                <span style="color: #554188; font-size:medium;">(LogIn to PayPal or enter CC info directly via PayPal interface)<br />

                    (you will be able to continue or to cancel with either button)</span><br />

                $485 US<br />

                <span style="color: #554188;">Financial Portrait Software System&trade;<br />

                User Tutorial Subscriptions Cloud Environment Bundle<br />

                4 Months<br />

                <span style="font-size:smaller;">General Ledger, Accounts Payable &amp; Accounts Receivable + Permissions &amp; Controls Application Area<br /></span>

                </span><br />

            </div>

            <div id="divpaypalbuttoncontainer1" class="centered_container" style="width:375px;">

                <!-- purchase buttons -->

            </div>

        </div>

 

        <div class="centered_container_y_text" style="width:250px;">

            <asp:TextBox ID="tbStatus1" runat="server" Visible="false" CssClass="centered_container_y_text" ReadOnly="true" style="width:250px;"></asp:TextBox>

        </div>

 

        </div>

        </div>

 

        <input id="hihLine1Qty" type="hidden" runat="server" />

        <input id="hihLine1SKU" type="hidden" runat="server" />

        <input id="hihLine1OvrDesc" type="hidden" runat="server" />

        <input id="hihLine1Price" type="hidden" runat="server" />

        <input id="hihLine1CurrCode" type="hidden" runat="server" />

        <input id="hihLine1UOM" type="hidden" runat="server" />

 

        <input id="hihLine2Qty" type="hidden" runat="server" />

        <input id="hihLine2SKU" type="hidden" runat="server" />

        <input id="hihLine2OvrDesc" type="hidden" runat="server" />

        <input id="hihLine2Price" type="hidden" runat="server" />

        <input id="hihLine2CurrCode" type="hidden" runat="server" />

        <input id="hihLine2UOM" type="hidden" runat="server" />

 

        <input id="hihLine3Qty" type="hidden" runat="server" />

        <input id="hihLine3SKU" type="hidden" runat="server" />

        <input id="hihLine3OvrDesc" type="hidden" runat="server" />

        <input id="hihLine3Price" type="hidden" runat="server" />

        <input id="hihLine3CurrCode" type="hidden" runat="server" />

        <input id="hihLine3UOM" type="hidden" runat="server" />

 

        <input id="hihLine4Qty" type="hidden" runat="server" />

        <input id="hihLine4SKU" type="hidden" runat="server" />

        <input id="hihLine4OvrDesc" type="hidden" runat="server" />

        <input id="hihLine4Price" type="hidden" runat="server" />

        <input id="hihLine4CurrCode" type="hidden" runat="server" />

        <input id="hihLine4UOM" type="hidden" runat="server" />

 

        <input id="hihLine5Qty" type="hidden" runat="server" />

        <input id="hihLine5SKU" type="hidden" runat="server" />

        <input id="hihLine5OvrDesc" type="hidden" runat="server" />

        <input id="hihLine5Price" type="hidden" runat="server" />

        <input id="hihLine5CurrCode" type="hidden" runat="server" />

        <input id="hihLine5UOM" type="hidden" runat="server" />

 

        <input id="hihTotalQuantity" type="hidden" runat="server" />

 

        <input id="hihAllowDb2iTrxStatus" type="hidden" runat="server" />

        <input id="hihTrxStatus1" type="hidden" runat="server" />

        <input id="hihTrxStatus2" type="hidden" runat="server" />

        <input id="hihTrxStatus3" type="hidden" runat="server" />

        <input id="hihTrxStatus4" type="hidden" runat="server" />

        <input id="hihTrxStatus5" type="hidden" runat="server" />

 

        <input id="hihOrderID" type="hidden" runat="server" />

        <input id="hihOrderCreateDateTimeStamp" type="hidden" runat="server" />

        <input id="hihTrxStatus" type="hidden" runat="server" />

        <input id="hihPurchaseUnitsCount" type="hidden" runat="server" />

        <input id="hihPurchaseUnitItemsCount" type="hidden" runat="server" />

 

        <input id="hihPurchaseDetailsJSON" type="hidden" runat="server" />

 

        <input id="hihPayerGivenName" type="hidden" runat="server" />

        <input id="hihPayerSurName" type="hidden" runat="server" />

        <input id="hihPayerNameSuffix" type="hidden" runat="server" />

        <input id="hihPayerID" type="hidden" runat="server" />

        <input id="hihPayerBusinessName" type="hidden" runat="server" />

        <input id="hihPayerPostalCode" type="hidden" runat="server" />

        <input id="hihPayerEmailAddress" type="hidden" runat="server" />

        <input id="hihPayerPhoneNumber" type="hidden" runat="server" />

 

        <input id="hihShipToAddressLine1" type="hidden" runat="server" />

        <input id="hihShipToAddressLine2" type="hidden" runat="server" />

        <input id="hihShipToCityOrAdminArea2" type="hidden" runat="server" />

        <input id="hihShipToStateOrAdminArea1" type="hidden" runat="server" />

        <input id="hihShipToPostalCode" type="hidden" runat="server" />

        <input id="hihShipToCountry" type="hidden" runat="server" />

        <input id="hihShipToAdminArea3" type="hidden" runat="server" />

        <input id="hihShipToAdminArea4" type="hidden" runat="server" />

 

        <input id="hihPurchaseConfTotalAmount" type="hidden" runat="server" />

        <input id="hihPurchaseConfCurrCode" type="hidden" runat="server" />

        <input id="hihPurchaseConfID" type="hidden" runat="server" />

        <input id="hihPurchaseConfTotalQty" type="hidden" runat="server" />

 

        <input id="hihPayPalButtonContainerName" type="hidden" runat="server" />

 

        <br />

 

    </div>

 

 

<!-- ******************** -->   

<!-- START button set uno -->   

<!-- ******************** -->   

<script type="text/javascript">

    paypal.Buttons({

 

        // onInit is called when the button first renders

        onInit: function (data, actions) {

 

            // Enable or disable the button when it is checked or unchecked

            if (document.getElementById("MainContent_hihAllowDb2iTrxStatus").value == "proceed") {

                actions.enable();

                document.getElementById("divpaypalbuttoncontainer1").hidden = false;

            }

            else {

                actions.disable();

                document.getElementById("divpaypalbuttoncontainer1").hidden = true;

            }

 

            if (document.getElementById("MainContent_tblErrorList1").hidden = false)

                document.getElementById("MainContent_tblErrorList1").focus();

 

        },

 

        createOrder: function (data, actions) {

 

            // This function sets up the details of the transaction, including the amount and line item details.

 

 

            return actions.order.create(

                {

                    "intent": "CAPTURE",

 

                    "purchase_units": [

                        {

                            "items": [

                                {

                                    "name": "General Ledger User Tutorial Cloud Environment - v4.0 Bld9  ",

                                    "quantity": "1",

                                    "sku": "UTCELT",

                                    "category": "DIGITAL_GOODS",

                                    "unit_amount": {

                                        "currency_code": "USD",

                                        "value": "145.00"

                                    },

                                    "unit_of_measure": "EACH"

                                },

                                {

                                    "name": "Accounts Payable User Tutorial Cloud Environment - v4.0 Bld9",

                                    "quantity": "1",

                                    "sku": "UTCEPT",

                                    "category": "DIGITAL_GOODS",

                                    "unit_amount": {

                                        "currency_code": "USD",

                                        "value": "145.00"

                                    },

                                    "unit_of_measure": "EACH"

                                },

                                {

                                    "name": "Accts Receivable User Tutorial Cloud Environment - v4.0 Bld9",

                                    "quantity": "1",

                                    "sku": "UTCERT",

                                    "category": "DIGITAL_GOODS",

                                    "unit_amount": {

                                        "currency_code": "USD",

                                        "value": "145.00"

                                    },

                                    "unit_of_measure": "EACH"

                                },

                                {

                                    "name": "fps smartclient 10.7 for Tutorials Cloud Env - e4036n       ",

                                    "quantity": "1",

                                    "sku": "UTCESC",

                                    "category": "DIGITAL_GOODS",

                                    "unit_amount": {

                                        "currency_code": "USD",

                                        "value": "40.00"

                                    },

                                    "unit_of_measure": "EACH"

                                },

                                {

                                    "name": "Permissions & Controls User Manual UTCE Bdl - v4.0 Bld9     ",

                                    "quantity": "1",

                                    "sku": "UTCEXM",

                                    "category": "DIGITAL_GOODS",

                                    "unit_amount": {

                                        "currency_code": "USD",

                                        "value": "10.00"

                                    },

                                    "unit_of_measure": "EACH"

                                }

                            ],

 

                            "amount": {

                                "currency_code": "USD",

                                "value": "485.00",

                                "breakdown": {

                                    "item_total": {

                                        "currency_code": "USD",

                                        "value": "485.00"

                                    }

                                }

                            }

 

                        }

                    ]

                }

            );

 

        },

 

        onApprove: function (data, actions) {

            // This function captures the funds from the transaction.

            return actions.order.capture().then(function (details) {

 

<%--                // use this syntax and .ClientID property

                try {

                    document.getElementById("<%=hihTrxStatus1.ClientID%>").value = details.status;

                }

                catch { }

                finally { }

 

                // or, if master page, use container name *concat "_" *concat c# variable name

                try {

                    document.getElementById("MainContent_hihTrxStatus1").value = details.status;

                }

                catch { }

                finally { }--%>

 

                try {

                    document.getElementById("MainContent_hihPayPalButtonContainerName").value = "divpaypalbuttoncontainer1";

 

                    document.getElementById("MainContent_hihOrderID").value = details.id;

                    document.getElementById("MainContent_hihTrxStatus").value = details.status;

 

                    document.getElementById("MainContent_hihPayerGivenName").value = details.payer.name.given_name;

                    document.getElementById("MainContent_hihPayerSurName").value = details.payer.name.surname;

 

                    document.getElementById("MainContent_hihPayerNameSuffix").value = details.payer.name.suffix;

                    if (document.getElementById("MainContent_hihPayerNameSuffix").value != "undefined") {

                        document.getElementById("MainContent_hihPayerNameSuffix").value = ", " + details.payer.name.suffix;

                    }

                    else {

                        document.getElementById("MainContent_hihPayerNameSuffix").value = "";

                    }

 

                    document.getElementById("MainContent_hihPayerEmailAddress").value = details.payer.email_address;

                    document.getElementById("MainContent_hihPayerID").value = details.payer.payer_id;

 

                    document.getElementById("MainContent_hihPurchaseUnitsCount").value = details.purchase_units.length;

                    document.getElementById("MainContent_hihPurchaseConfTotalAmount").value = details.purchase_units[0].payments.captures[0].amount.value;

                    document.getElementById("MainContent_hihPurchaseConfCurrCode").value = details.purchase_units[0].payments.captures[0].amount.currency_code;

                    document.getElementById("MainContent_hihPurchaseConfID").value = details.purchase_units[0].payments.captures[0].id;

 

                    document.getElementById("MainContent_hihShipToAddressLine1").value = details.purchase_units[0].shipping.address.address_line_1;

                    document.getElementById("MainContent_hihShipToAddressLine2").value = details.purchase_units[0].shipping.address.address_line_2;

                    if (document.getElementById("MainContent_hihShipToAddressLine2").value != "undefined") {

                        document.getElementById("MainContent_hihShipToAddressLine2").value = details.purchase_units[0].shipping.address.address_line_2 + " - ";

                    }

                    else {

                        document.getElementById("MainContent_hihShipToAddressLine2").value = "";

                    }

                    document.getElementById("MainContent_hihShipToCityOrAdminArea2").value = details.purchase_units[0].shipping.address.admin_area_2;

                    document.getElementById("MainContent_hihShipToStateOrAdminArea1").value = details.purchase_units[0].shipping.address.admin_area_1;

                    document.getElementById("MainContent_hihShipToPostalCode").value = details.purchase_units[0].shipping.address.postal_code;

                    document.getElementById("MainContent_hihShipToCountry").value = details.purchase_units[0].shipping.address.country_code;

                    document.getElementById("MainContent_hihShipToAdminArea3").value = details.purchase_units[0].shipping.address.admin_area_3;

                    document.getElementById("MainContent_hihShipToAdminArea4").value = details.purchase_units[0].shipping.address.admin_area_4;

 

                    document.getElementById("MainContent_hihOrderCreateDateTimeStamp").value = details.create_time;

                    document.getElementById("MainContent_hihPurchaseUnitItemsCount").value = details.purchase_units[0].items.length;

 

                    for (index = 0; index < details.purchase_units[0].items.length; index++) {

                        varidxnbrstr = index + 1;

                        document.getElementById("MainContent_hihLine" + varidxnbrstr.toString() + "Qty").value =

                            details.purchase_units[0].items[index].quantity;

                        document.getElementById("MainContent_hihLine" + varidxnbrstr.toString() + "SKU").value =

                            details.purchase_units[0].items[index].sku;

                        document.getElementById("MainContent_hihLine" + varidxnbrstr.toString() + "OvrDesc").value =

                            details.purchase_units[0].items[index].name;

                        document.getElementById("MainContent_hihLine" + varidxnbrstr.toString() + "Price").value =

                            details.purchase_units[0].items[index].unit_amount.value;

                        document.getElementById("MainContent_hihLine" + varidxnbrstr.toString() + "CurrCode").value =

                            details.purchase_units[0].items[index].unit_amount.currency_code;

                        document.getElementById("MainContent_hihLine" + varidxnbrstr.toString() + "UOM").value =

                            details.purchase_units[0].items[index].unit_amount.unit_of_measure;

                    }

 

                    try {

                        document.getElementById("MainContent_hihPurchaseDetailsJSON").value = JSON.stringify(details);

                    }

                    catch { }

                    finally { }

                }

                catch { }

                finally { }

 

                document.getElementById("frmSiteLevelMasterPageCS").submit();

 

            });

        }

 

    }).render('#divpaypalbuttoncontainer1');

</script>

<!-- ****************** -->   

<!-- END button set uno -->   

<!-- ****************** -->   

 

 

</div>

 

 

</asp:Content>

 





        go to the home page Top of TechCrystals Articles     go to next series page Next in TechCrystals Articles     Site Map     Switch to
Mobile View

You are at the web site of Tegratecs Development Corp.  Click here to go to the home page of this site...
Offering Innovation & Providing ROI
without building Islands of Automation
Our contact information:
Tegratecs Development Corp.®
1320 Tower Road
Schaumburg, IL 60173
847-397-0088
800-739-FPSS
( please contact us or create a Web User ID or sign in )
© 2012-2026