<CXP:BuildError/>

Compilation Error

Description: One or more errors occurred during the compilation of a resource required to build this page. Please review the following specific error details and modify your source code appropriately.

Files:

CXP File: C:\inetpub\wwwroot\cox\srl\srl.cxp
Intermediate Xbase++ Code: C:\inetpub\wwwroot\cox\srl\cxp-application\srl.cxp.20250603-60945514.dll

Message(s):

Compiler: error XBT0200: Syntax Error in Line 60
The compiler has detected a syntactically incorrect expression.

0058 }
0059 
0060 /*
0061 * ---
0062 * --- xs sm md lg

Compiler: error XBT0250: Incomplete expression in Line 63
An incomplete expression was detected (e.g. in one line of code only x or a[x], or a == 0 is written. This is not allowed.)

0061 * ---
0062 * --- xs sm md lg
0063 * ---
0064 *     xs =    0-767 pixels.
0065 *     sm =  768-991 pixels.

Compiler: error XBT0200: Syntax Error in Line 64
The compiler has detected a syntactically incorrect expression.

0062 * --- xs sm md lg
0063 * ---
0064 *     xs =    0-767 pixels.
0065 *     sm =  768-991 pixels.
0066 *     md =  992-1199 pixels.

Compiler: error XBT0200: Syntax Error in Line 60
The compiler has detected a syntactically incorrect expression.

0058 }
0059 
0060 /*
0061 * ---
0062 * --- xs sm md lg

Compiler: error XBT0250: Incomplete expression in Line 63
An incomplete expression was detected (e.g. in one line of code only x or a[x], or a == 0 is written. This is not allowed.)

0061 * ---
0062 * --- xs sm md lg
0063 * ---
0064 *     xs =    0-767 pixels.
0065 *     sm =  768-991 pixels.

Compiler: error XBT0200: Syntax Error in Line 64
The compiler has detected a syntactically incorrect expression.

0062 * --- xs sm md lg
0063 * ---
0064 *     xs =    0-767 pixels.
0065 *     sm =  768-991 pixels.
0066 *     md =  992-1199 pixels.

Build Process

The builder was invoked with the following parameters, the output is shown below.

Current Directory:
C:\Program Files (x86)\Alaska Software\cxp20\bin
Command:
C:\Program Files (x86)\Alaska Software\cxp20\bin\cxc-builder.exe
Parameters:
"@C:\inetpub\wwwroot\cox\srl\cxp-application\srl.cxp.20250603-60945514.lst"
Output:
wwwlogin.prg(60:0): error XBT0200: Syntax Error
wwwlogin.prg(63:0): error XBT0250: Incomplete expression
wwwlogin.prg(64:0): error XBT0200: Syntax Error
wwwlogin.prg(60:0): error XBT0200: Syntax Error
wwwlogin.prg(63:0): error XBT0250: Incomplete expression
wwwlogin.prg(64:0): error XBT0200: Syntax Error
File c:\inetpub\wwwroot\cox\srl\srl.cxp successfully processed.

Full Source

In the following the full source code of your resource is shown.

0001 <%#PAGE trace="yes" implements="COX-SRL" %>
0002 <%#code locality="page-global"%>
0003
0004 <%
0005 #include "srl.ch"
0006 #include "wwwim.ch"
0007
0008 // This section is injected into the module header
0009 STATIC COXEnv   := COXWWW()
0010
0011 #include "j_compat.prg"
0012 #include "wwwim.prg"
0013 %>
0014
0015 <!DOCTYPE html>
0016 <html lang="it">
0017 <head>
0018   @(CoxAziHeader())
0019
0020   <meta name="robots"      content="noindex" >
0021
0022   <link href="image/ico.jpg" rel="icon" type="image/x-icon" >
0023
0024   <meta charset="utf-8" >
0025   <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" >
0026
0027   <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" >
0028   <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.0/css/all.css" integrity="sha384-lZN37f5QGtY3VHgisS14W3ExzMWZxybE1SJSEsQp9S+oqd12jhcu+A56Ebc1zFSJ" crossorigin="anonymous" >
0029   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" >
0030   <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" >
0031
0032   <style>
0033    .navbar-nav li:hover > ul.dropdown-menu {
0034     display: block;
0035     }
0036
0037    .dropdown-submenu {
0038     position:relative;
0039     }
0040    .dropdown-submenu>.dropdown-menu {
0041     top: 0;
0042     left: 100%;
0043     margin-top:-6px;
0044     }
0045
0046    /* rotate caret on hover */
0047    .dropdown-menu > li > a:hover:after {
0048     text-decoration: underline;
0049     transform: rotate(-90deg);
0050     }
0051
0052     .instagram .fab {
0053     font-size:30px;
0054     background: #d6249f;
0055     background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%,#d6249f 60%,#285AEB 90%);
0056     -webkit-background-clip: text;
0057     -webkit-text-fill-color: transparent;
0058     }
0059
0060 /*
0061 * ---
0062 * --- xs sm md lg 
0063 * ---
0064 *     xs =    0-767 pixels.
0065 *     sm =  768-991 pixels.
0066 *     md =  992-1199 pixels.
0067 *     lg = 1200 pixels and up.
0068 */
0069
0070    @media (min-width: 576px) {
0071         .card-deck .card {
0072             min-width: 50.1%; /* 1 Column */
0073             margin-bottom: 12px;
0074             max-width: 100%;
0075             border: 1px solid #F5F5F5 !important;
0076         }
0077     }
0078
0079     @media (min-width: 768px) {
0080         .card-deck .card {
0081             min-width: 33.4%;  /* 2 Columns */  
0082             max-width: calc(calc(100% / 2) - 30px);                   
0083             border: 1px solid #F5F5F5 !important;
0084         }
0085     }
0086
0087     @media (min-width: 992px) {
0088         .card-deck .card {
0089             min-width: 25.1%;  /* 3 Columns */
0090             max-width: calc(calc(100% / 3) - 30px);
0091             border: 1px solid #F5F5F5 !important;
0092         }
0093     }
0094
0095     @media (min-width: 1200px) {
0096         .card-deck .card {
0097             min-width: 20.1%;  /* 4 Columns */
0098             max-width: calc(calc(100% / 4) - 30px);
0099             border: 1px solid #F5F5F5 !important;
0100         }
0101     }
0102
0103     @media (min-width: 1600px) {
0104         .card-deck .card {
0105             min-width: 17.1%;  /* 5 Columns */
0106             max-width: calc(calc(100% / 5) - 30px);
0107             border: 1px solid #F5F5F5 !important;
0108         }
0109     }
0110
0111     /* Red on del line */
0112     del {
0113           text-decoration-color:#FF0000 !important;
0114         }
0115
0116     /* Button over stretched card */
0117     .card .btn {
0118                 z-index: 2;
0119                 position: relative;
0120                 }
0121
0122     /* Grigio Ebay */
0123     .card { border-radius:20px       !important;
0124             background-color:#F5F5F5 !important;
0125            }
0126
0127     /* Card Image Top Round */
0128     .card-img-top {
0129             border-radius:20px 20px 0px 0px !important;
0130                   }
0131
0132     /* Card Image Left Round */
0133     .img-fluid {
0134             margin-left:0                   !important;
0135             border-radius:20px 0px 0px 20px !important;
0136                 }
0137
0138    /* Make the image fully responsive */
0139       .carousel-inner img {
0140            max-height: 80vh;
0141            max-width: 100%;
0142            object-fit: cover;
0143            object-position: center;
0144           }
0145
0146     /* Font reducing */
0147     html {
0148            font-size: 14px;
0149           }
0150
0151     /* ==== Scheda Articolo ===== */
0152     /* Position the image container (needed to position the left and right arrows) */
0153     .container {
0154      position: relative;
0155      }
0156     
0157     /* Hide the images by default */
0158     .mySlidesV {
0159      display: none;
0160      }
0161
0162     .mySlidesL {
0163      display: none;
0164      }
0165
0166     .mySlidesO {
0167      display: none;
0168      }
0169
0170     /* Add a pointer when hovering over the thumbnail images */
0171     .cursor {
0172      cursor: pointer;
0173      }
0174
0175     /* Next & previous buttons */
0176     .prev,
0177     .next {
0178      cursor: pointer;
0179      position: absolute;
0180      top: 40%;
0181      width: auto;
0182      margin-top: -50px;
0183      color: #ffd814;
0184      font-weight: bold;
0185      font-size: 50px;
0186      border-radius: 0 3px 3px 0;
0187      user-select: none;
0188      -webkit-user-select: none;
0189      }
0190
0191      /* Position the "next button" to the right */
0192      .next {
0193       right: 30px;      
0194       border-radius: 3px 0 0 3px;
0195       }
0196
0197      /* On hover, add a grey background color with a little bit see-through */
0198      .prev:hover,
0199      .next:hover {
0200       background-color: rgba(245, 245, 245, 0.8);
0201       }
0202
0203      /* Number text (1/3 etc) */
0204      .numbertext {
0205       color: #ffd814;
0206       font-size: 12px;
0207       position: absolute;
0208       margin-top: 15px;
0209       margin-left: 15px;
0210       }
0211
0212      .row:after {
0213       content: "";
0214       display: table;
0215       clear: both;
0216       }
0217
0218      /* Six columns side by side */
0219      .column {
0220       float: left;
0221       width: 16.66%;
0222       }
0223
0224      /* Add a transparency effect for thumnbail images */
0225      .image {
0226       opacity: 0.6;
0227       }
0228
0229      .active,
0230      .image:hover {
0231       opacity: 1;
0232       border: 1px solid;
0233       border-color: orange;
0234       border-radius: 10px;
0235       }
0236      /* ==== Fine Scheda Articolo ===== */
0237   </style>
0238 </head>
0239
0240 <body>
0241   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
0242   <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
0243   <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
0244   <script src="jquery/js/jquery-3.6.0.slim.js"></script>
0245
0246   <script>
0247     $(document).ready(function(){
0248          $(#ordinamento12).on(change, function() {
0249            // Qui puoi chiamare la tua pagina web, ad esempio con AJAX o reindirizzando
0250            // Per esempio, reindirizzare:
0251               window.location.href = $(this).val();
0252            });
0253          $(#ordinamento6).on(change, function() {
0254            // Qui puoi chiamare la tua pagina web, ad esempio con AJAX o reindirizzando
0255            // Per esempio, reindirizzare:
0256               window.location.href = $(this).val();
0257            });
0258          $(#ordinamento3).on(change, function() {
0259            // Qui puoi chiamare la tua pagina web, ad esempio con AJAX o reindirizzando
0260            // Per esempio, reindirizzare:
0261               window.location.href = $(this).val();
0262            });
0263
0264          $(#offerte12).on(change, function() {
0265            // Qui puoi chiamare la tua pagina web, ad esempio con AJAX o reindirizzando
0266            // Per esempio, reindirizzare:
0267            if (this.checked) {
0268               window.location.href = $(this).val()+"on"
0269            } else {
0270               window.location.href = $(this).val()+"off"
0271            }
0272            });
0273          $(#offerte6).on(change, function() {
0274            // Qui puoi chiamare la tua pagina web, ad esempio con AJAX o reindirizzando
0275            // Per esempio, reindirizzare:
0276            if (this.checked) {
0277               window.location.href = $(this).val()+"on"
0278            } else {
0279               window.location.href = $(this).val()+"off"
0280            }
0281            });
0282          $(#offerte3).on(change, function() {
0283            // Qui puoi chiamare la tua pagina web, ad esempio con AJAX o reindirizzando
0284            // Per esempio, reindirizzare:
0285            if (this.checked) {
0286               window.location.href = $(this).val()+"on"
0287            } else {
0288               window.location.href = $(this).val()+"off"
0289            }
0290            });
0291
0292          $(.toast).toast({delay: 4000});
0293          $(.toast).toast(show);
0294      });
0295   </script>
0296
0297 <%* --- Program Section%>
0298    
0299 <div class="container">
0300
0301 <%
0302      COXInit() // Init Program
0303 %>
0304
0305 <%if upper(::Params:OpCode) = upper(WWW_RELOAD()) // Reload forzato
0306      ::session:fcoxstart  = .F. 
0307 endif%>
0308
0309 <%if empty(::session:fcoxstart) 
0310      #include "wwwSessionVar.prg"   // Dichiarazione e definizione variabile ::session:
0311      #include "wwwloadcfg.prg"      // Assegnazione Variabili statiche di configurazione
0312      if (::session:RetState = .T.) 
0313         if (::session:sHome = "S")
0314            ::session:fcoxstart  = .T.       
0315        else
0316            ::session:CXPID = "(002)"
0317            #include "wwwerrorloadcfg.prg"
0318         endif
0319      else
0320         ::session:CXPID = "(004)"
0321         #include "wwwerrorloadcfg.prg"
0322      endif
0323 endif%>
0324
0325
0326 <%* --- OVERALL%>
0327 <%if !empty(::Params:ORDART)
0328      ::session:pOrder   := ::Params:ORDART
0329 endif%>
0330 <%if !empty(::Params:offerte)
0331      ::session:pOfferte := ::Params:offerte
0332 endif%>
0333   
0334 <%* --- HOME PAGE%>
0335 <%if empty(::Params:OpCode) .or. Upper(::Params:OpCode) $ upper(WWW_CMD()) // Con alcuni tipi di comando è come se fosse la Home Page
0336      ::session:LastShopping := ""
0337      ::session:pOfferte     := "off"
0338      if empty(::session:fcoxstart) 
0339         ::session:CXPID = "(005)"
0340         #include "wwwconnectionlost.prg"
0341      else
0342         #include "wwwArticoloSearch.prg"  // Filtraggio per caricamento iniziale categorie/sottocategorie
0343         #include "wwwgetstore.prg"
0344         #include "wwwnavbar.prg"
0345         #include "wwwhome.prg"
0346      endif
0347 endif%>
0348
0349 <%* --- NAVIGAZIONE ARTICOLI%>
0350 <%* 1 --- Main%>
0351 <%if (::Params:OpCode == WWW_ArticoloSearch())  // Ricerca
0352      ::session:LastShopping = ::HttpRequest:GetVariable("REQUEST_URI"// Salvo la URL
0353      #include "wwwArticoloSearch.prg"  // Filtraggio 
0354      #include "wwwnavbar.prg"
0355      if len(aBody)=0 // Nessun elemento trovato
0356         ::session:MsgTitle = "Ricerca:"
0357         ::session:MsgText  = "Nessuna corrispondenza trovata."
0358         ::session:MsgType  = WWW_Info()
0359         #include "wwwbanner.prg"
0360      else
0361         #include "wwwshowbody.prg"
0362         if len(aBody) > WWW_nEleShowInt() .and. empty(::session:TxtSearch) .and. empty(::session:CodCli) // Consiglio di inserire una stringa
0363            ::session:MsgTitle = "Ricerca"
0364            ::session:MsgText  = "Se vuoi restringere la ricerca inserisci una o più parole nel campo Ricerca."
0365            ::session:MsgType  = WWW_Info()
0366            #include "wwwbanner.prg"
0367         endif
0368      endif
0369 endif%>
0370
0371 <%* 1.1 --- Visualizzazione Scheda Articolo%>
0372     <%if (::Params:OpCode == WWW_ArticoloShow())
0373              #include "wwwnavbar.prg"
0374              #include "wwwArticoloShow.prg"
0375         endif%>
0376 <%* 1.1.1 --- Zoom sulla Scheda Articolo%>
0377      <%if (::Params:OpCode == WWW_ArticoloZoom())  // Zoom Articolo
0378                      #include "wwwnavbar.prg"
0379                      #include "wwwArticoloZoom.prg"
0380                 endif%>
0381
0382 <%* 1.1.2 --- Aggiungi una Riga al Carrello%>
0383 <%if (::Params:OpCode == WWW_CarrelloAggiungi())   // Aggiungi Carrello
0384                      if empty(::session:CodCli)
0385                         #include "wwwlogin.prg" // Rimando al Login
0386                      else
0387                         #include "wwwCarrelloRigheUpdate.prg"
0388                         if (::session:RetState)
0389                            if ::session:PDS = "S"
0390                               ::session:MsgTitle = "Magazzino"
0391                            else
0392                               ::session:MsgTitle = "Carrello"
0393                            endif
0394
0395                          //::session:MsgText ... da wwwCarrelloAggiungi
0396                            ::session:MsgType  = WWW_Info()
0397                            ::HTTPResponse:Redirect(::session:LastShopping)
0398                         else
0399                            ::session:MsgTitle = "Errore aggiornamento Carrello"    // Se errore, ShowBody senza banner
0400                          //::session:MsgText ... da wwwCarrelloAggiungi
0401                            ::session:MsgType  = WWW_Danger()
0402                            #include "wwwnavbar.prg"
0403                            #include "wwwshowbody.prg"
0404                            #include "wwwbanner.prg"
0405                            #include "wwwhome.prg"
0406                         endif
0407                      endif
0408                 endif%>
0409
0410 <%* 2.1 --- Login%>
0411 <%if (::Params:OpCode == WWW_Login()) // Login esplicito
0412               #include "wwwlogin.prg"
0413         endif%>
0414 <%* 2.1.1 --- Registrazione%>
0415 <%if (::Params:OpCode == WWW_Registrazione())   // Registrazione
0416                      ::session:PIva         := ::Params:CodFis
0417                      ::session:CodCli       := ""
0418                      if wwwCheckPIvaCF(::session:PIva, "IT")
0419                         ::session:PIva   := ::Params:CodFis
0420                         ::session:CodCli := ""
0421                         COXDecodePIVA(::session:PIva, @::session:CodCli)
0422                         if empty(::session:CodCli)
0423                            cHome       = ::File+"?Opcode="+www_Logout()
0424                            #include "wwwRegistrazione.prg"
0425                            ::session:MsgTitle = "Inserimento Dati"
0426                            ::session:MsgText  = "Inserisci i tuoi dati ed assegnati una Password."
0427                            ::session:MsgType  = WWW_Warning()
0428                            #include "wwwbanner.prg"
0429                         else
0430                            cHome       = ::File+"?Opcode="+www_Logout()
0431                            #include "wwwClienteDati.prg"  
0432                            ::session:MsgTitle = "Ricerca Dati"
0433                            ::session:MsgText  = "Hai già fatto acquisti nel nostro negozio. Devi solo controllare i dati ed assegnarti una Password. Controlla anche che lindirizzo mail sia valido."
0434                            ::session:MsgType  = WWW_Warning()
0435                            #include "wwwbanner.prg"
0436                         endif
0437                      else
0438                         #include "wwwPIVARegistrazione.prg"
0439                         ::session:MsgTitle = "Errore"
0440                         ::session:MsgText  = "Codice Fiscale/Partita IVA <"+::session:PIva+"> non valido. Inserire un valore corretto."
0441                         ::session:MsgType  = WWW_Danger()
0442                         #include "wwwbanner.prg"
0443                      endif
0444                  endif%>
0445
0446 <%* 2.1.2 --- Codice Fiscale per Registrazione%>
0447                 <%if (::Params:OpCode == WWW_PIVARegistrazione())   // Check Codice Fiscale per la Registrazione
0448                      #include "wwwPIVARegistrazione.prg"
0449                 endif%>
0450
0451 <%* 2.1.3 --- Input Codice Fiscale%>
0452                 <%if (::Params:OpCode == WWW_GetCodFis())   // Get Codice Fiscale
0453                      #include "wwwgetcodfis.prg"
0454                 endif%>
0455
0456 <%* 2.1.4 --- Check Username+Pwd%>
0457          <%if (::Params:OpCode == WWW_Check())   // Username e Password
0458                       ::session:DES           := ""
0459                       ::session:Destin        := ""  
0460                       ::session:CodCli        := ""  
0461                       ::session:RagSoc        := ""  
0462                       ::session:Mail          := "" 
0463                       ::session:Piva          := "" 
0464
0465                       ::session:pOfferte      := "off"
0466                                    // ::Params:CodCli può essere Codice Cliente, Partita IVA, ecc.
0467                       if COXCheckUser(::Params:CodCli, ::Params:Password, @::session:ACQ, @::session:WEB, @::session:ADM, @::session:PDS, @::session:CodPDS, @::session:CodCli, @::session:Ragsoc, @::session:Mail, @::session:PIva)
0468                          #include "wwwSetUserProfile.prg"                         
0469                       else
0470                          ::session:RetState    := .F.
0471                          ::session:CodCli      := ""
0472                          ::session:ACQ         := ""
0473                          ::session:WEB         := ""
0474                          ::session:ADM         := ""
0475                          ::session:PDS         := ""
0476                          ::session:CodPDS      := 0
0477                          ::session:Ragsoc      := ""
0478           
0479                          ::session:MsgTitle = "Credenziali errate"
0480                          ::session:MsgText  = "Reinserire lindirizzo mail e la password oppure recupera le credenziali."
0481                          ::session:MsgType  = WWW_Warning()
0482                       endif
0483
0484                       if empty(::session:LastShopping)  
0485                          #include "wwwArticoloSearch.prg"  // Filtraggio 
0486                          #include "wwwgetstore.prg"
0487                          #include "wwwnavbar.prg"
0488                          #include "wwwbanner.prg"
0489                          #include "wwwhome.prg"
0490                       else
0491                          #include "wwwgetstore.prg"
0492                          ::HTTPResponse:Redirect(::session:LastShopping) // Chiamata al Carrello in attesa...
0493                       endif
0494                 endif%>
0495
0496 <%* 2.1.5 --- Recupero Credenziali%>
0497          <%if (::Params:OpCode == WWW_RecuCred())   // Recupera Username e Password
0498                      ::session:RetState = COXRecuCred(::Params:CodFis, @::session:MsgText)
0499                      #include "wwwnavbar.prg"
0500                      if (::session:RetState)
0501                         ::session:MsgTitle = "Recupero Credenziali."
0502                       //::session:MsgText ... da wwwCOXRecuCred
0503                         ::session:MsgType  = WWW_Warning()
0504                         #include "wwwbanner.prg"
0505                      else
0506                         ::session:MsgTitle = "Attenzione!"
0507                       //::session:MsgText ... da wwwCOXRecuCred
0508                         ::session:MsgType  = WWW_Warning()
0509                         #include "wwwbanner.prg"
0510                      endif
0511                      #include "wwwhome.prg"
0512                 endif%>
0513
0514 <%* 2.2 --- Logout%>
0515         <%if (::Params:OpCode == WWW_Logout())  // Logout
0516              ::session:pOfferte     := "off"
0517              ::session:nOrd := 0    // Controllo ordini aperti del Cliente
0518              #include "wwwOrderState.prg"
0519              if !(empty(::session:CodCli) .or. empty(::session:Ragsoc) .or. empty(::session:nOrd)) // Test no unpolite message
0520                 ::session:MsgTitle = "Logout"
0521                 ::session:MsgText  = ::session:Ragsoc+", grazie per aver acquistato da noi. "+;
0522                                      "Hai "+j_nstr(::session:nOrd)+" "+if(::session:nOrd=1, "ordine""ordini")+" in lavorazione. "+;
0523                                      "A presto!"
0524
0525                ::session:MsgText  = ::session:Ragsoc+", grazie per averci visitato. A presto!"
0526                ::session:MsgType  = WWW_Info()
0527                #include "wwwbanner.prg"
0528              endif
0529
0530              #include "wwwlogout.prg" 
0531             ::HTTPResponse:Redirect(::File) 
0532         endif%>
0533
0534 <%* 2.3 --- ANAGRAFICA CLIENTE%>
0535         <%if (::Params:OpCode == WWW_ClienteDati())     // Dati Cliente
0536              #include "wwwClienteDati.prg"
0537         endif%>
0538 <%* 2.3.1%>
0539 <%if (::Params:OpCode == WWW_ClienteUpdate())   // Update Cliente
0540                       #include "wwwClienteUpdate.prg"
0541                      if (::session:RetState)
0542                         ::session:MsgTitle = "Registrazione/Aggiornamento."
0543                       //::session:MsgText ... da wwwClienteUpdate
0544                         ::session:MsgType  = WWW_Warning()
0545                         #include "wwwnavbar.prg"
0546                         #include "wwwbanner.prg"
0547                      else
0548                        ::session:MsgTitle = "Errore in fase di Registrazione/Aggiornamento."
0549                      //::session:MsgText ... da wwwClienteUpdate
0550                        ::session:MsgType  = WWW_Danger()
0551                        #include "wwwnavbar.prg"
0552                        #include "wwwbanner.prg"
0553                      endif
0554                      #include "wwwhome.prg"
0555                  endif%>
0556
0557 <%* 2.4 --- INDIRIZZI CLIENTE%>
0558 <%if (::Params:OpCode == WWW_ClienteIndirizzi())     // Indirizzi Cliente
0559              #include "wwwClienteIndirizzi.prg"
0560         endif%>
0561 <%* 2.4.1 --- Aggiornamento Indirizzi Cliente%>
0562 <%if (::Params:OpCode == WWW_ClienteIndirizziUpdate())   // Update Indirizzi Cliente
0563                      #include "wwwClienteIndirizziUpdate.prg"
0564                      if (::session:RetState)
0565                          ::session:MsgTitle = "Aggiornamento."
0566                        //::session:MsgText ... da wwwClienteIndirizziUpdate
0567                          ::session:MsgType  = WWW_Info()
0568                          #include "wwwnavbar.prg"
0569                          #include "wwwbanner.prg"
0570                     else
0571                          ::session:MsgTitle = "Errore in fase di Aggiornamento."
0572                        //::session:MsgText ... da wwwClienteIndirizziUpdate
0573                          ::session:MsgType  = WWW_Danger()
0574                          #include "wwwnavbar.prg"
0575                          #include "wwwbanner.prg"
0576                     endif
0577                     #include "wwwhome.prg"
0578                 endif%>
0579
0580 <%* --- CARRELLO%>
0581 <%* 2.5 --- Righe Carrello%>
0582 <%if (::Params:OpCode == WWW_CarrelloRighe())     // Righe Carrello
0583              #include "wwwCarrelloRighe.prg"
0584         endif%>
0585 <%* 2.5.1 --- Aggiornamento Righe Carrello%>
0586 <%if (::Params:OpCode == WWW_CarrelloRigheUpdate())   // Update Righe Carrello
0587                      #include "wwwCarrelloRigheUpdate.prg"
0588                      if (::session:RetState)
0589                          ::session:MsgTitle = "Aggiornamento."
0590                        //::session:MsgText ... da wwwCarrelloRigheUpdate
0591                          ::session:MsgType  = WWW_Info()
0592                          ::HTTPResponse:Redirect(::File+"?OpCode="+WWW_CarrelloRighe())  // Carrello
0593                      else
0594                          ::session:MsgTitle = "Errore in fase di Aggiornamento."
0595                        //::session:MsgText ... da wwwCarrelloRigheUpdate
0596                          ::session:MsgType  = WWW_Danger()
0597                          #include "wwwnavbar.prg"
0598                          #include "wwwbanner.prg"
0599                      endif
0600                      #include "wwwhome.prg"
0601                 endif%>
0602
0603 <%* 2.5.2 --- Conferma del Carrello%>
0604 <%if (::Params:OpCode == WWW_CarrelloConferma())   // Conferma del Carrello
0605                      #include "wwwCarrelloRigheUpdate.prg"
0606                      if (::session:RetState)
0607                         ::session:MsgTitle = "Aggiornamento."
0608                       //::session:MsgText ... da wwwCarrelloRigheUpdate
0609                         ::session:MsgType  = WWW_Info()
0610                         #include "wwwCarrelloConferma.prg"
0611                      else
0612                         ::session:MsgTitle = "Errore in fase di Aggiornamento."
0613                       //::session:MsgText ... da wwwCarrelloRigheUpdate
0614                         ::session:MsgType  = WWW_Danger()
0615                         #include "wwwnavbar.prg"
0616                         #include "wwwhome.prg"
0617                         #include "wwwbanner.prg"
0618                      endif
0619                 endif%>
0620
0621 <%* 2.5.3 --- Invia Ordine (Chiusura Carrello)%>
0622 <%if (::Params:OpCode == WWW_CarrelloInviaOrdine())   // Invia Ordine
0623                      #include "wwwCarrelloInviaOrdine.prg"
0624
0625                      ::session:nCARRELLO       := 0        // No Numero Carrello        (CODICE   sang_bpr)
0626                      ::session:nQTA            := 0        // No Qta
0627                      ::session:dtCARRELLO      := ctod(""// No Data Apertura Carrello (DATA     sang_bpr)
0628                      ::session:nAmountInvoice  := 0        // No Totale Carrello        (TO_P_FAT sang_bpr)
0629                 endif%>
0630
0631 <%* 2.6 --- Elenco Ordini%>
0632 <%if (::Params:OpCode == WWW_OrdiniSearch())  // Ricerca Ordini
0633              #include "wwwOrdiniSearch.prg"  // Filtraggio 
0634              if len(aEleOrd)=0 // Nessun elemento trovato
0635                 ::session:MsgTitle = "Ricerca:"
0636                 ::session:MsgText  = "Nessun Ordine trovato."
0637                 ::session:MsgType  = WWW_Info()
0638                 #include "wwwnavbar.prg"
0639                 #include "wwwhome.prg"
0640                 #include "wwwbanner.prg"
0641             else
0642                 #include "wwwShowOrdini.prg"
0643             endif
0644         endif%>
0645 <%* 2.6.1 - Show Ordine%>
0646 <%if (::Params:OpCode == WWW_OrdineShow())     // Visualizzazione Ordine
0647                      #include "wwwOrdineShow.prg"
0648                 endif%>
0649
0650 <%* 2.7 - Acquista di nuovo%>
0651 <%if (::Params:OpCode == WWW_AcquistadiNuovo())// Visualizzazione Articoli di Acquistati
0652              ::session:pOfferte      := "off"
0653              #include "wwwAcquistadiNuovo.prg"
0654              #include "wwwArticoloSearch.prg"  // Filtraggio 
0655              #include "wwwnavbar.prg"
0656              if len(aBody)=0 // Nessun elemento trovato
0657                 ::session:MsgTitle = "Ricerca:"
0658                 ::session:MsgText  = "Nessuna corrispondenza trovata."
0659                 ::session:MsgType  = WWW_Info()
0660                 #include "wwwbanner.prg"
0661              else
0662                 #include "wwwshowbody.prg"
0663                 if len(aBody) > WWW_nEleShowInt() .and. empty(::session:TxtSearch) .and. empty(::session:CodCli) // Consiglio di inserire una stringa
0664                    ::session:MsgTitle = "Ricerca"
0665                    ::session:MsgText  = "Se vuoi restringere la ricerca inserisci una o più parole nel campo Ricerca."
0666                    ::session:MsgType  = WWW_Info()
0667                    #include "wwwbanner.prg"
0668                 endif
0669             endif
0670         endif%>
0671
0672 <%* 2.8 --- Svuota Carrello%>
0673 <%if (::Params:OpCode == WWW_CarrelloSvuota())  // Elimina il carrello
0674              if ::session:nCarrello=0 // Carrello già vuoto
0675                 ::session:MsgTitle = "Svuota Carrello:"
0676                 ::session:MsgText  = "Carrello già vuoto."
0677                 ::session:MsgType  = WWW_Info()
0678                 #include "wwwnavbar.prg"
0679                 #include "wwwhome.prg"
0680                 #include "wwwbanner.prg"
0681             else
0682                 #include "wwwOrdineSvuota.prg"
0683             endif
0684         endif%>
0685
0686 <%* 2.9 --- Svuota Carrello%>
0687 <%if (::Params:OpCode == WWW_CarrelloAnnulla())  // Elimina il carrello
0688              if COXSetStatoCarrello(::session:nCarrello, ::session:sStatoAnnullato)
0689                 ::session:nCarrello  := 0
0690                 ::session:dtCARRELLO := ctod(""
0691                 ::session:nArt       := 0
0692                 ::session:nQTA       := 0
0693                 ::session:nAmount    := 0        
0694
0695                 ::session:RetState := .T.
0696                 ::session:MsgTitle = "Carrello"
0697                 ::session:MsgText  = "Svuotamento effettuato!"
0698                 ::session:MsgType  = WWW_Info()
0699              else
0700                 ::session:RetState := .F.
0701                 ::session:MsgTitle = "Carrello"
0702                 ::session:MsgText  = "Errore durante lo svuotamento. Riprovare."
0703                 ::session:MsgType  = WWW_Warning()
0704              endif
0705
0706              if empty(::session:LastShopping)  
0707                 #include "wwwnavbar.prg"
0708                 #include "wwwbanner.prg"
0709                 #include "wwwhome.prg"
0710               else
0711                 ::HTTPResponse:Redirect(::session:LastShopping) // Chiamata al Carrello in attesa...
0712               endif
0713         endif%>
0714
0715 <%* --- OPEN CARRELLO%>
0716 <%* 3.0 --- Apertura remota del carrello%>
0717 <%if (::Params:OpCode == WWW_CarOpen())     // Apertura
0718              pStato = ""
0719              pMsg   = ""
0720
0721              ::session:DES           := ""
0722              ::session:Destin        := ""  
0723              ::session:CodCli        := ""  
0724              ::session:RagSoc        := ""  
0725              ::session:Mail          := "" 
0726              ::session:Piva          := "" 
0727
0728              if COXGetCarrello(val(Base642Bin(::Params:ID)), @::session:CodCli, @::Session:nAmountInvoice, @pStato, @pMsg) .and. ;
0729                 COXGetUser(::session:CodCli, @::session:ACQ, @::session:WEB, @::session:ADM,  @::session:PDS, @::session:CodPDS, @::session:CodCli, @::session:Ragsoc, @::session:Mail, @::session:PIva)
0730                 #include "wwwSetUserProfile.prg"                         
0731
0732                 if pStato = ::session:sStatoAperto .or. pStato = ::session:sStatoValidazione .or. pStato = ::session:sStatoProntoOrdine
0733                    ::session:nCarrello = val(Base642Bin(::Params:ID))
0734                    #include "wwwCarrelloRighe.prg"
0735                 else
0736                    ::HTTPResponse:Redirect(::File+'?OpCode='+www_OrdineShow()+'&pOrdine='+Base642Bin(::Params:ID)) 
0737                 endif
0738              else
0739                 ::session:RetState := .F.
0740                 ::session:MsgTitle = "Carrello"
0741                 ::session:MsgText  = "Carrello non trovato!"
0742                 ::session:MsgType  = WWW_Warning()
0743
0744                 #include "wwwnavbar.prg"
0745                 #include "wwwbanner.prg"
0746                 #include "wwwhome.prg"
0747              endif
0748         endif%>
0749
0750        <%* 4.0 --- Richiedi il costo del trasporto%>
0751 <%if (::Params:OpCode == WWW_RichiediTrasporto())  // Costo del Trasporto
0752              if COXSetStatoCarrello(::session:nCarrello, ::session:sStatoValidazione)
0753                 ::session:RetState := .T.
0754                 ::session:MsgTitle = "Carrello"
0755                 ::session:MsgText  = "In attesa di quotazione del costo di trasporto."
0756                 ::session:MsgType  = WWW_Info()
0757              else
0758                 ::session:RetState := .F.
0759                 ::session:MsgTitle = "Carrello"
0760                 ::session:MsgText  = "Errore durante il cambio stato del carrello. Riprovare."
0761                 ::session:MsgType  = WWW_Warning()
0762              endif
0763
0764              if empty(::session:LastShopping)  
0765                 #include "wwwnavbar.prg"
0766                 #include "wwwbanner.prg"
0767                 #include "wwwhome.prg"
0768               else
0769                 ::HTTPResponse:Redirect(::session:LastShopping) // Chiamata al Carrello in attesa...
0770               endif
0771         endif%>
0772
0773
0774 <%*  qwqw--------------- da aggiornare: ADM, PDS, ecc. ----------------%>
0775 <%* --- ANAGRAFICA ARTICOLO%>
0776 <%if (::Params:OpCode == WWW_ArticoloUpdate())  // Aggiorna Articolo
0777      ::session:LastShopping = ""
0778      #include "wwwArticoloUpdate.prg"
0779      #include "wwwnavbar.prg"
0780      #include "wwwArticoloShow.prg"
0781 endif%>
0782 <%* --- Fine ANAGRAFICA ARTICOLI%>
0783
0784 <%* --- Check PDS+Pwd%>
0785 <%if (::Params:OpCode == WWW_CheckPDS())   // Destinazione Password
0786      ::session:LastShopping = ""
0787      if COXCheckPDS(::session:CodCli, j_Parse2(::Params:Destinazione, "[""]"), ::Params:Password)
0788         ::session:RetState := .T.
0789         ::session:PDS      := "S"
0790         ::session:DES      := j_Parse2(::Params:Destinazione, "[""]")
0791         ::session:Destin   := ::Params:Destinazione
0792         ::HTTPResponse:Redirect(::File+"?OpCode="+WWW_PDSSet())    
0793      else
0794         ::session:RetState    := .F.
0795         ::session:PDS         := ""
0796         ::session:DES         := ""
0797         ::session:Destin      := ""
0798         ::session:LastShopping:= ""
0799         ::session:CodCli      := ""  // Rifacciamo la Login
0800      endif
0801
0802      #include "wwwgetstore.prg"
0803      #include "wwwnavbar.prg"
0804      if !(::session:RetState)
0805         TEXT INTO cHtml WRAP
0806             <div class="alert alert-warning d-flex justify-content-center align-items-center">
0807                 <strong>Attenzione!</strong>&nbspCredenziali errate. Reinserire il Magazzino e la Password.
0808             </div>
0809         ENDTEXT
0810         ? cHtml
0811      endif
0812      #include "wwwhome.prg"
0813 endif%>
0814 <%* --- Fine Check PDS+Pwd%>
0815
0816 <%* --- ADMSSet%>
0817 <%if (::Params:OpCode == WWW_ADMSet())   // Set ADM Function
0818      ::session:LastShopping = ""
0819      #include "wwwADMSet.prg"
0820      #include "wwwgetstore.prg"
0821      #include "wwwnavbar.prg"
0822      #include "wwwhome.prg"
0823 endif%>
0824 <%* --- ADMSet%>
0825
0826 <%* --- ACQSet%>
0827 <%if (::Params:OpCode == WWW_ACQSet())   // Set ACQ Function
0828      ::session:LastShopping = ""
0829      #include "wwwACQSet.prg"
0830      #include "wwwgetstore.prg"
0831      #include "wwwnavbar.prg"
0832      #include "wwwhome.prg"
0833 endif%>
0834 <%* --- ACQSet%>
0835
0836 <%* --- PDSSet%>
0837 <%if (::Params:OpCode == WWW_PDSSet())   // Set PDS Function
0838      ::session:LastShopping = ""
0839      #include "wwwPDSSet.prg"
0840      #include "wwwgetstore.prg"
0841      #include "wwwnavbar.prg"
0842      #include "wwwhome.prg"
0843 endif%>
0844 <%* --- Fine PDS%>
0845
0846 <%* 2 - Righe Piattaforma Distributiva (tutti i Magazzini)%>
0847 <%if (::Params:OpCode == WWW_PDSRighe())     // Righe Piattaforma
0848      #include "wwwPDSRighe.prg"
0849 endif%>
0850
0851 <%* --- Pagamento PayPal%>
0852 <%if (::Params:OpCode == WWW_PayPal())   // PayPal Payment Accepted
0853   * --- Chiamata da PayPal in CallBack   // NON TOCCARE
0854      if empty(::Params:Carrello) 
0855         ::session:RetState = .f.
0856         ::session:MsgTitle = "PayPal"
0857         ::session:MsgText  = "Manca il numero di carrello."
0858         ::session:MsgType  = WWW_Danger()
0859      else
0860         nCarrello := val(::Params:Carrello)
0861         PayerID   := if (::Params:PayerID = NIL, "", ::Params:PayerID)
0862
0863         pStato         = ""
0864         pMsg           = ""
0865         nAmountInvoice = 0
0866         if COXGetCarrello(nCarrello, @::session:CodCli, @nAmountInvoice, @pStato, @pMsg) 
0867            cObj      := "Ordine n. "+COXCodAzi()+"/"+alltrim(str(nCarrello))+" ("+dtoc(date())+" "+Time()+")"
0868  
0869            cImporto  := "Importo Ordine EUR : "+j_nstr(nAmountInvoice,6,2)
0870            cMessage  := "Grazie per il pagamento, spediremo prima possibile. Ti abbiamo inviato una mail di promemoria."
0871            cBody     := "Gentile "+trim(::session:Ragsoc)+","+CRLF()
0872            cBody     += "abbiamo ricevuto il pagamento, spediremo prima possibile."        +CRLF()
0873            cBody     += ""                                                                 +CRLF()
0874            cBody     += cImporto                                                           +CRLF()
0875            cBody     += ""                                                                 +CRLF()
0876            cBody     += "Un cordiale saluto e grazie per lacquisto."                      +CRLF()
0877            cBody     += AZI_INT()                                                          +CRLF()
0878            cBody     += AZI_WEB()                                                          +CRLF()                
0879
0880                           // No ReSend. questa sezione viene richiamata da COX Web dopo lInvio Ordine 
0881                           // e da PayPal come return_url. Occorre il flag altrimenti COX e PayPal mandano la stessa mail.
0882            pMsg = "" 
0883            if COXBprStateUpd(nCarrello, ::session:CodCli, ::session:sStatoPagato, .F., date(), PayerID, ::HttpRequest:GetVariable("REQUEST_URI"), @pMsg) 
0884               if COXBprSendMail(nCarrello, ::session:CodCli, cObj, cBody, .F.) 
0885                  ::session:RetState = .t.
0886                  ::session:MsgTitle = "PayPal"
0887                  ::session:MsgText  = "Carrello chiuso correttamente con il pagamento."
0888                  ::session:MsgType  = WWW_Info()
0889               else
0890                  ::session:RetState = .f.
0891                  ::session:MsgTitle = "PayPal"
0892                  ::session:MsgText  = "Errore in fase di invio mail."
0893                  ::session:MsgType  = WWW_Danger()
0894              endif
0895           else
0896              ::session:RetState = .f.
0897              ::session:MsgTitle = "PayPal"
0898              ::session:MsgText  = "Errore in fase di aggiornamento carrello. "+pMsg
0899              ::session:MsgType  = WWW_Danger()
0900           endif
0901        else
0902           ::session:RetState = .f.
0903           ::session:MsgTitle = "PayPal"
0904           ::session:MsgText  = "Carrello non trovato. "+pMsg
0905           ::session:MsgType  = WWW_Danger()
0906        endif
0907     endif
0908
0909     nCARRELLO      := 0        // No Numero Carrello        (CODICE   sang_bpr)
0910     PayerID        := 0
0911     nAmountInvoice := 0        // No Totale Carrello        (TO_P_FAT sang_bpr)
0912
0913     #include "wwwnavbar.prg"
0914     #include "wwwbanner.prg"
0915     #include "wwwhome.prg"
0916 endif%>
0917 <%* --- Fine CARRELLO%>
0918
0919 <%* --- Admin%>
0920 <%* 1%>
0921 <%if (::Params:OpCode == WWW_AdminWIPShow())   // Admin Show Work in Progress
0922      ::session:LastShopping = ""
0923      #include "wwwadminwipshow.prg"
0924 endif%>
0925
0926 <%* 2%>
0927 <%if (::Params:OpCode == WWW_AdminWIPReload())   // Parametri Admin
0928      ::session:LastShopping = ""
0929      #include "wwwloadcfg.prg"
0930      if (::session:RetState = .T.) 
0931         #include "wwwadminwipshow.prg"
0932      else
0933         ::session:CXPID = "(034)"
0934         #include "wwwerrorloadcfg.prg"
0935      endif
0936 endif%>
0937
0938 <%* 3%>
0939 <%if (::Params:OpCode == WWW_AdminWIPSet())   // Admin Set Work in Progress
0940      ::session:LastShopping = ""
0941      #include "wwwadminwipset.prg"
0942      #include "wwwgetstore.prg"
0943      #include "wwwnavbar.prg"
0944      #include "wwwhome.prg"
0945 endif%>
0946 <%* --- Fine Admin%>
0947 </div>
0948
0949 <script>
0950   /* ==== Scheda Articolo ===== */
0951   let slideIndex = 1;
0952
0953   showSlidesV(slideIndex);
0954   showSlidesL(slideIndex);
0955   showSlidesO(slideIndex);
0956
0957   function plusSlides(n) {
0958      showSlidesV(slideIndex += n);
0959      showSlidesL(slideIndex += n);
0960      showSlidesO(slideIndex += n);
0961    }
0962
0963   function currentSlide(n) {
0964      showSlidesV(slideIndex = n);
0965      showSlidesL(slideIndex = n);
0966      showSlidesO(slideIndex = n);
0967    }
0968
0969   function showSlidesV(n) {
0970      let i;
0971      let slides = document.getElementsByClassName("mySlidesV");
0972      let dots = document.getElementsByClassName("image");
0973      let captionText = document.getElementById("caption");
0974      if (n > slides.length) {slideIndex = 1}
0975      if (n < 1) {slideIndex = slides.length}
0976      for (i = 0; i < slides.length; i++) {
0977          slides[i].style.display = "none";
0978       }
0979      for (i = 0; i < dots.length; i++) {
0980          dots[i].className = dots[i].className.replace(" active", "");
0981       }
0982      slides[slideIndex-1].style.display = "block";
0983      dots[slideIndex-1].className += " active";
0984      captionText.innerHTML = dots[slideIndex-1].alt;
0985    }
0986
0987   function showSlidesL(n) {
0988      let i;
0989      let slides = document.getElementsByClassName("mySlidesL");
0990      let dots = document.getElementsByClassName("image");
0991      let captionText = document.getElementById("caption");
0992      if (n > slides.length) {slideIndex = 1}
0993      if (n < 1) {slideIndex = slides.length}
0994      for (i = 0; i < slides.length; i++) {
0995          slides[i].style.display = "none";
0996       }
0997      for (i = 0; i < dots.length; i++) {
0998          dots[i].className = dots[i].className.replace(" active", "");
0999       }
1000      slides[slideIndex-1].style.display = "block";
1001      dots[slideIndex-1].className += " active";
1002      captionText.innerHTML = dots[slideIndex-1].alt;
1003    }
1004
1005   function showSlidesO(n) {
1006      let i;
1007      let slides = document.getElementsByClassName("mySlidesO");
1008      let dots = document.getElementsByClassName("image");
1009      let captionText = document.getElementById("caption");
1010      if (n > slides.length) {slideIndex = 1}
1011      if (n < 1) {slideIndex = slides.length}
1012      for (i = 0; i < slides.length; i++) {
1013          slides[i].style.display = "none";
1014       }
1015      for (i = 0; i < dots.length; i++) {
1016          dots[i].className = dots[i].className.replace(" active", "");
1017       }
1018      slides[slideIndex-1].style.display = "block";
1019      dots[slideIndex-1].className += " active";
1020      captionText.innerHTML = dots[slideIndex-1].alt;
1021    }
1022 </script>
1023
1024 <script type="text/javascript"> 
1025          var mobile = (/iphone|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));  
1026          if (mobile) { 
1027              $(.hidemobile).css(display, none); // OR you can use $(.hidemobile).hide();
1028                       } 
1029          else 
1030                      { 
1031              $(.hideweb).css(display, none); // OR you can use $(.hideweb).hide();
1032                      }
1033 </script>
1034 </body>
1035 </html>
1036