alert(\"LA FATTURA $num È REINVIATA AL CLIENTE\"); "; else print ""; } function A4I_AssignClientCode($iduser) { if(A4I_DBExtract("a4i_users","codice","id=$iduser")=="") { $liv=A4I_DBExtract("a4i_users","level","id=$iduser"); $idu=$iduser; if($iduser<10) $idu="00000$iduser"; else if($iduser<100) $idu="0000$iduser"; else if($iduser<1000) $idu="000$iduser"; else if($iduser<10000) $idu="00$iduser"; else if($iduser<100000) $idu="0$iduser"; $cod=$liv.$idu; A4I_DBUpdate("a4i_users","codice='$cod'","id=$iduser"); } } // costi accessori function A4ICatCostiAccessori($idtrolley,$totale,$tipocosto) { $val=0; $iva=0; $stato=A4I_DBExtract("a4i_etrolley","status","id=$idtrolley"); $showi=A4I_DBExtract("a4i_info","valore","campo='catshowivati'"); if($stato=="O") $ec=A4I_DBQuery("a4i_catcosti","*","tipo='$tipocosto' and $totale>=minimo and ($totale0) // costo fornito iva inclusa { if($showi) $val=$valo; // visualizza ivato else { // visualizza non ivato, calcola l'iva da aggiungere al totale $val=$valo/(1.0+$ival); $iva=($valo-$val); } } else if($ival<0) // costo fornito iva esclusa { if($showi) $val=$valo*(1.0+Abs($ival));// visualizza ivato else { $val=$valo; // visualizza non ivato ma calcola l'iva per il totale iva $iva+=$valo*abs($ival); } } return array($val,$iva); } // gestione ordini dell'utente function A4IOrdersManager() { global $A4I,$A4IButton,$A4IRoot; $valuta=A4I_DBExtract("a4i_info","valore","campo='payvaluta'"); if($valuta=="EURO") $valuta="€"; $iduser=A4IUserId(); $sez=A4I_DBExtract("a4i_info","valore","campo='catlaysez'"); $idsez=A4I_DBExtract("a4i_sections","id","nome='$sez'"); $p="

"; $colhover=A4I_DBExtract("a4i_info","valore","campo='catlaycolhov'"); $onmou="style='cursor:hand' onmouseover='this.style.backgroundColor=\"$colhover\";' onmouseout='this.style.backgroundColor=\"\";'"; $tabdim=A4I_DBExtract("a4i_info","valore","campo='catlaytabdim'"); // dimensione della pagina $code=A4I_DBExtract("a4i_info","valore","campo='cattrolleycode'"); print "
"; print ""; print ""; print "
".A4I_CatalogImage("BACK",A4IMsg("GENBACK"),"javascript:history.back();")."
"; print ""; print ""; print ""; $ok=A4I_DBQuery("a4i_etrolley","*","iduser=$iduser","chiuso desc,pagato desc, creato desc"); while($dat=@mysql_fetch_assoc($ok)) { if($dat[status]=="O") { $n=""; $alt=A4IMsg("CATTROOPEN"); } else if($dat[status]=="W") { $n=3; $alt=A4IMsg("CATTROWAIT"); } else if($dat[status]=="C") { $n=2; $alt=A4IMsg("CATTROCLOSE"); } $lk=""; print "$lk"; // aperto print ""; // pagato print ""; // chiuso print ""; // totale print ""; print ""; } print "
$p".A4IMsg("CATSTATUS")."$p".A4IMsg("CATOPENED")."$p".A4IMsg("CATPAYED")."$p".A4IMsg("CATCLOSED")."$p".A4IMsg("CATTOTVAL")."
$p$lk$p$lk"; print A4IDateFormat(substr($dat[creato],0,8))." ".substr($dat[creato],8,2).":".substr($dat[creato],10,2); print "$p$lk"; if($dat[pagato]) print A4IDateFormat(substr($dat[pagato],0,8))." ".substr($dat[pagato],8,2).":".substr($dat[pagato],10,2); else print "-"; print "$p$lk"; if($dat[chiuso]) print A4IDateFormat(substr($dat[chiuso],0,8))." ".substr($dat[chiuso],8,2).":".substr($dat[chiuso],10,2); else print "-"; print "$p$lk".number_format($dat[totale],2,",",".")." $valuta
"; print "
"; } // gestione completa del carrello function A4ITrolleyManager($id=0) { global $A4I,$A4IButton,$A4IRoot,$province,$CAT_COSTI_ACCESSORI; $valuta=A4I_DBExtract("a4i_info","valore","campo='payvaluta'"); if($valuta=="EURO") $valuta="€"; $iduser=A4IUserId(); // è un carello richiamato dalla gestione ordini if(!$id) $id=$_REQUEST["id"]; // è un carrello OPEN if(!$id) $id=A4I_TrolleyId(); // visualizzo ultimo carrello dell'utente if(!$id) { $ok=A4I_DBQuery("a4i_etrolley","id","iduser=$iduser and status='W'","pagato desc"); if(!@mysql_num_rows) $ok=A4I_DBQuery("a4i_etrolley","id","iduser=$iduser and status='C'","chiuso desc"); $tmp=@mysql_fetch_assoc($ok); $id=$tmp[id]; } // impostazioni $lang=A4IDefaultLang(); $code=A4I_DBExtract("a4i_info","valore","campo='cattrolleycode'"); // codice della pagina che chiama il carrello $colbordi=A4I_DBExtract("a4i_info","valore","campo='catlaycolbor'"); // colore bordi della tabella $colhover=A4I_DBExtract("a4i_info","valore","campo='catlaycolhov'"); // colore di hover $sez=A4I_DBExtract("a4i_info","valore","campo='catlaysez'"); // sezione editoriale del catalogo $idsez=A4I_DBExtract("a4i_sections","id","nome='$sez'"); $p="

"; $info="img border='0' hspace='5' src='$A4IRoot/IMAGES/info.gif'"; $onmou="style='cursor:hand' onmouseover='this.style.backgroundColor=\"$colhover\";' onmouseout='this.style.backgroundColor=\"\";'"; $limit=stripslashes(A4I_DBExtract("a4i_info","valore","campo='catartmax'")); // limite massimo acquistabile if(!$limit) $limit=50; // default $tabdim=A4I_DBExtract("a4i_info","valore","campo='catlaytabdim'"); // dimensione della pagina if(A4I_DBCount("a4i_etrolleydat","idtrolley=$id and tipo='F'")) $datifatt=true; else $datifatt=false; if(A4I_DBCount("a4i_etrolleydat","idtrolley=$id and tipo='C'")) $daticons=true; else $daticons=false; $passaggio=$_REQUEST["stat"]; // fino a che non è pagato, onlyview=false; $pagato=A4I_DBExtract("a4i_etrolley","pagato","id=$id"); // ELIMINAZIONE CARRELLO if($_REQUEST["oper"]=="DEL" and $pagato=="") { A4I_DeleteTrolley($id); print "
"; print "$p
 
".A4IMsg("CATDELETED")."
 
 
"; return; } // MODIFICA QUANTITÀ ARTICOLO else if($_REQUEST["oper"]=="MOD" and $pagato=="") { $nq=$_REQUEST["nq"]; A4I_DelFromTrolley($_REQUEST["idrow"]); if($nq) { if($nq>$limit) $mq=$limit; A4I_Add2Trolley($_REQUEST["idart"],$nq); } } // SALVATAGGIO DATI FATTURAZIONE E CONSEGNA else if(($_REQUEST["oper"]=="FATT" or $_REQUEST["oper"]=="CONS") and $pagato=="") { $nome=trim(A4Ilower($_REQUEST["nome"])); $cognome=trim(A4Ilower($_REQUEST["cognome"])); $ragsoc=trim(A4Iupper($_REQUEST["ragsoc"])); $gift=trim($_REQUEST["gift"]); if($ragsoc=="") { if(!A4I_ckname($nome)) { print ""; return; } if(!A4I_ckname($cognome)) { print ""; return; } } else if(strlen($ragsoc)<4) { print ""; return; } $indi=trim(str_replace(" "," ",A4Iupper($_REQUEST["indi"]))); $loca=trim(str_replace(" ","",A4Iupper($_REQUEST["loca"]))); $cap=str_replace(" ","",$_REQUEST["cap"]); $prov=$_REQUEST["prov"]; $nazi=trim(str_replace(" ","",A4Iupper($_REQUEST["nazi"]))); if(strlen($indi)<5) { print ""; return; } if(strlen($loca)<3) { print ""; return; } if(strlen($cap)!=5) { print ""; return; } if(strlen($prov)!=2) { print ""; return; } if(strlen($nazi)>0 and strlen($nazi)<3) { print ""; return; } if($_REQUEST["oper"]=="FATT") { $cofi=str_replace(" ","",A4Iupper($_REQUEST["cofi"])); $piva=str_replace(" ","",A4Iupper($_REQUEST["piva"])); if(strlen($cofi)!=16 and strlen($cofi)!=11) { print ""; return; } if(strlen($piva)!=11 and $ragsoc!="") { print ""; return; } $tipo="F"; $passaggio=2; } else { $tipo="C"; $passaggio=0; } A4I_DBInsert("a4i_etrolleydat","idtrolley=$id,tipo='$tipo'"); A4I_DBUpdate("a4i_etrolleydat","nome='".addslashes(A4Iupper($nome))."',cognome='".addslashes(A4Iupper($cognome))."', ragionesociale='".addslashes($ragsoc)."',indirizzo='".addslashes($indi)."', localita='".addslashes($loca)."',cap='$cap', provincia='$prov',stato='".addslashes($nazi)."', codicefiscale='$cofi',partitaIVA='$piva',gift='".addslashes(A4Iupper($gift))."'","idtrolley=$id and tipo='$tipo'"); } print ""; } else { $showi=A4I_DBExtract("a4i_info","valore","campo='catshowivati'"); if($pagato=="") A4I_CompactTrolley($id); $aa=A4I_DBQuery("a4i_etrolleyart","*","idtrolley=$id"); if(!@mysql_num_rows($aa)) { print "$p
 
".A4IMsg("CATVOIDTROLL")."
 
 
"; // pagamento effettuato, non visualizza il back ed il messaggio if($_REQUEST["oper"]=="PAY" and $_REQUEST["done"]!=0) print ""; else { print ""; print ""; print "

"; print stripslashes(A4I_DBExtract("a4i_info","valore","campo='cattroll$lang'"))." 

".A4I_CatalogImage("BACK",A4IMsg("GENBACK"),"javascript:history.back();")."
"; } print ""; // REGISTRAZIONE UTENTE if($passaggio==1 and !$iduser and $pagato=="") { $pagi=A4I_DBExtract("a4i_info","valore","campo='catregcode'"); print ""; } else if($passaggio==1 and $iduser and $pagato=="") { print ""; } else if($_REQUEST["oper"]=="PAY" and $dat[pagato]=="") { $p="

"; $numord=A4I_PayTrolley(); print $p.A4IMsg("CATORDERNO")."
$numord"; print $p.A4IMsg("CATTOTTOPAY")."
".number_format($dat[totale],2,",",".")." $valuta"; print "

$p
 
".A4IMsg("CATNEEDREG")."
"; print "
"; print ""; print ""; print "
$p".A4IMsg("CATFATDAT")."
"; print ""; print ""; if($datifatt) $val=stripslashes(A4I_DBExtract("a4i_etrolleydat","nome","idtrolley=$id and tipo='F'")); else $val=stripslashes(A4I_DBExtract("a4i_users","nome","id=$iduser")); print ""; if($datifatt) $val=stripslashes(A4I_DBExtract("a4i_etrolleydat","cognome","idtrolley=$id and tipo='F'")); else $val=stripslashes(A4I_DBExtract("a4i_users","cognome","id=$iduser")); print ""; if($datifatt) $val=stripslashes(A4I_DBExtract("a4i_etrolleydat","ragionesociale","idtrolley=$id and tipo='F'")); else $val=stripslashes(A4I_DBExtract("a4i_usersdata","ragionesociale","id=$iduser")); print ""; if($datifatt) $val=stripslashes(A4I_DBExtract("a4i_etrolleydat","indirizzo","idtrolley=$id and tipo='F'")); else $val=stripslashes(A4I_DBExtract("a4i_usersdata","indirizzo","id=$iduser")); print ""; if($datifatt) $val=stripslashes(A4I_DBExtract("a4i_etrolleydat","localita","idtrolley=$id and tipo='F'")); else $val=stripslashes(A4I_DBExtract("a4i_usersdata","localita","id=$iduser")); print ""; if($datifatt) $val=stripslashes(A4I_DBExtract("a4i_etrolleydat","provincia","idtrolley=$id and tipo='F'")); else $val=stripslashes(A4I_DBExtract("a4i_usersdata","provincia","id=$iduser")); print ""; if($datifatt) $val=stripslashes(A4I_DBExtract("a4i_etrolleydat","stato","idtrolley=$id and tipo='F'")); else $val=stripslashes(A4I_DBExtract("a4i_usersdata","stato","id=$iduser")); if($val=="") $val="Italia"; print ""; if($datifatt) $val=A4I_DBExtract("a4i_etrolleydat","codicefiscale","idtrolley=$id and tipo='F'"); else $val=A4I_DBExtract("a4i_usersdata","codicefiscale","id=$iduser"); print ""; if($datifatt) $val=A4I_DBExtract("a4i_etrolleydat","partitaIVA","idtrolley=$id and tipo='F'"); else $val=A4I_DBExtract("a4i_usersdata","partitaIVA","id=$iduser"); print ""; print "
$p<$info title='".A4IMsg("CATFATNAME")."'>".A4IMsg("GENNAME")."$p
$p<$info title='".A4IMsg("CATFATSURNAME")."'>".A4IMsg("GENSURNAME")."$p
$p<$info title='".A4IMsg("CATFATRAGSOC")."'>".A4IMsg("GENRAGSOC")."$p
$p<$info title='".A4IMsg("CATFATADDR")."'>".A4IMsg("GENADDR")."$p
$p<$info title='".A4IMsg("CATFATTOWN")."'>".A4IMsg("GENTOWN")."$p
$p<$info title='".A4IMsg("CATFATPROVCAP")."'>".A4IMsg("GENPROV")."$p"; print " ".A4IMsg("GENCAP")."
$p<$info title='".A4IMsg("CATFATNAT")."'>".A4IMsg("GENNATION")."$p
$p<$info title='".A4IMsg("CATFATCF")."'>".A4IMsg("GENCODFIS")."$p
$p<$info title='".A4IMsg("CATFATPI")."'>".A4IMsg("GENPIVA")."$p
"; print ""; print ""; print "
"; } // dati consegna else if($passaggio==2 and $pagato=="") { print "
"; print ""; print ""; print "
$p".A4IMsg("CATCONSADD")."
"; print ""; print ""; if($daticons) $tipo="C"; else $tipo="F"; $val=stripslashes(A4I_DBExtract("a4i_etrolleydat","nome","idtrolley=$id and tipo='$tipo'")); print ""; $val=stripslashes(A4I_DBExtract("a4i_etrolleydat","cognome","idtrolley=$id and tipo='$tipo'")); print ""; $val=stripslashes(A4I_DBExtract("a4i_etrolleydat","ragionesociale","idtrolley=$id and tipo='$tipo'")); print ""; $val=stripslashes(A4I_DBExtract("a4i_etrolleydat","indirizzo","idtrolley=$id and tipo='$tipo'")); print ""; $val=stripslashes(A4I_DBExtract("a4i_etrolleydat","localita","idtrolley=$id and tipo='$tipo'")); print ""; $val=stripslashes(A4I_DBExtract("a4i_etrolleydat","provincia","idtrolley=$id and tipo='$tipo'")); print ""; $val=stripslashes(A4I_DBExtract("a4i_etrolleydat","stato","idtrolley=$id and tipo='$tipo'")); if($val=="") $val="Italia"; print ""; // gestione regalo if(A4I_DBExtract("a4i_info","valore","campo='paygift'")) { print ""; print ""; print ""; } print "
$p<$info title='".A4IMsg("CATCONNAME")."'>".A4IMsg("GENNAME")."$p
$p<$info title='".A4IMsg("CATCONSURNAME")."'>".A4IMsg("GENSURNAME")."$p
$p<$info title='".A4IMsg("CATCONRAGSOC")."'>".A4IMsg("GENRAGSOC")."$p
$p<$info title='".A4IMsg("CATCONADDR")."'>".A4IMsg("GENADDR")."$p
$p<$info title='".A4IMsg("CATCONTOWN")."'>".A4IMsg("GENTOWN")."$p
$p<$info title='".A4IMsg("CATCONPROVCAP")."'>".A4IMsg("GENPROV")."$p"; print " ".A4IMsg("GENCAP")."
$p<$info title='".A4IMsg("CATCONNAT")."'>".A4IMsg("GENNATION")."$p
$p<$info title='".A4IMsg("CATGIFTMSG")."'>".A4IMsg("CATGIFTASK")."$p
"; print ""; print ""; print ""; print "
"; print ""; print ""; print "
"; } // carrello else { // estrae dati fatturazione e consegna (e crea le stringhe per la print) $fattu=""; $conse=""; $fa=A4I_DBQuery("a4i_etrolleydat","*","idtrolley=$id and tipo='F'"); if(@mysql_num_rows($fa)) { $fat=@mysql_fetch_assoc($fa); if($fat[ragionesociale]!="") $fattu=$fat[ragionesociale]; else $fattu=$fat[cognome]." ".$fat[nome]; if($fat[indirizzo]!="") $fattu.="
".$fat[indirizzo]; $fattu.="
".$fat[cap]." - ".$fat[localita]." (".$fat[provincia].")"; if($fat[codicefiscale]!="") $fattu.="
CF ".$fat[codicefiscale]; if($fat[partitaIVA]!="") $fattu.="
P.IVA ".$fat[partitaIVA]; $co=A4I_DBQuery("a4i_etrolleydat","*","idtrolley=$id and tipo='C'"); if(@mysql_num_rows($co)) { $daticons=true; $fat=@mysql_fetch_assoc($co); if($fat[ragionesociale]!="") $conse=$fat[ragionesociale]; else $conse=$fat[cognome]." ".$fat[nome]; if($fat[indirizzo]!="") $conse.="
".$fat[indirizzo]; $conse.="
".$fat[cap]." - ".$fat[localita]." (".$fat[provincia].")"; $giftmsg=$fat[gift]; } } // carrello e dati per conferma acquisto print "
"; $ok=A4I_DBQuery("a4i_etrolley","*","id=$id"); $dat=@mysql_fetch_assoc($ok); // chiamata di ritorno dal pagamento, visualizzo il messaggio if($_REQUEST["oper"]=="PAY" and $_REQUEST["done"]!=0) { $p="

"; // se done=1 autorizzato if($_REQUEST["done"]==1) { // bonifico if($_REQUEST["tp"]=="bb") { A4I_DBUpdate("a4i_etrolley","status='P',bb=1","id=$id"); print $p.stripslashes(A4I_DBExtract("a4i_info","valore","campo='catlaytxtwbb$lang'")); } // carta di credito else { // se non è ancora stata ricevuta l'autorizzazione (URLMS) messaggio di waiting if($dat[pagato]=="") { A4I_DBUpdate("a4i_etrolley","status='P'","id=$id"); print $p.stripslashes(A4I_DBExtract("a4i_info","valore","campo='catlaytxtok2$lang'")); } else print $p.stripslashes(A4I_DBExtract("a4i_info","valore","campo='catlaytxtok$lang'")); } } // se done=-1 non completato else print $p.stripslashes(A4I_DBExtract("a4i_info","valore","campo='catlaytxtno$lang'")); print "

"; print ""; print ""; print "
$p".A4IMsg("CATADDFAT")."
".stripslashes($fattu)."
$p".A4IMsg("CATADDCON")."
".stripslashes($conse)."
"; $bonifico=A4I_DBExtract("a4i_info","valore","campo='paybb'"); if($bonifico) { $p="

"; print ""; print "
"; } print $p.stripslashes(A4I_DBExtract("a4i_info","valore","campo='catlaytxtpay$lang'"))."

"; if($bonifico) { print "
"; print $p.stripslashes(A4I_DBExtract("a4i_info","valore","campo='catlaytxtpbb$lang'")); print "
"; } print A4I_CatalogImage("PAY",A4IMsg("CATGOPAY"),"javascript:pay()"); if($bonifico) { print ""; print A4I_CatalogImage("PAYBB",A4IMsg("CATGOPAYBB"),"javascript:bon()"); print "
"; } else print "

"; print ""; return; } if($dat[status]=="O" and !$passaggio and $pagato=="") $open=true; else $open=false; $totstd=0; $tottuo=0; print ""; print ""; print ""; if(!$showi) { print ""; $totiva=0; } print ""; while($art=@mysql_fetch_assoc($aa)) { $des=A4I_DBExtract("a4i_catalog","articolo","id=".$art[idart]); $pagi=A4I_DBExtract("a4i_info","valore","campo='catartcode'"); $lk=""; print "$lk"; // unitario standard $prezzo=A4I_GetArtStandardPrice($art[idart]); print ""; // quantità print ""; } else print $art[quant]; print ""; $prezzo=$prezzo*$art[quant]; $totstd+=$prezzo; print ""; // se non era registrato e registrandosi ha indicato una convenzione il prezzo può essere variato, quindi ricalcolo $newprice=A4I_GetArtUserFinalPrice($art[idart],$iduser); if($newprice!=$art[prezzo]) { A4I_DBUpdate("a4i_etrolleyart","prezzo=$newprice","id=".$art[id]); $art[prezzo]=$newprice; } $prezzo=$art[quant]*$art[prezzo]; $tottuo+=$prezzo; print ""; if(!$showi) { $iva=A4I_DBExtract("a4i_catalogpri","prezzo","idart=".$art[idart]." and idprice=-1"); print ""; $totiva+=$prezzo*$iva/100; } print ""; } print ""; print ""; print ""; if(!$showi) print ""; print "
$p".A4IMsg("CATDESCR")."$p".A4IMsg("CATUNITPRICE")."$p".A4IMsg("CATQUANT")."$p".A4IMsg("CATTOTPRICE")."$p".A4IMsg("CATSCONPRICE")."$p IVA
$p$lk$des$p".number_format($prezzo,2,",",".")."$p"; if($open) { print "$p".number_format($prezzo,2,",",".")."$p".number_format($prezzo,2,",",".")."$p".number_format($iva,0,"","")."%
$p tot  $p".number_format($totstd,2,",",".")."$p".number_format($tottuo,2,",",".")." 
"; print "
"; print ""; } // carrello pagato e confermato else if($pagato!="") { $data=A4I_DBExtract("a4i_etrolley","pagato","id=$id"); print A4I_CatalogImage("OK","","")."
"; print "".A4IMsg("CATORDERPAYED")."
".A4IDateFormat(substr($data,0,8))." ".substr($data,8,2).":".substr($data,10,2); if(A4I_DBExtract("a4i_etrolley","status='C'","id=$id")) { $data=A4I_DBExtract("a4i_etrolley","chiuso","id=$id"); print $p."".A4IMsg("CATORDERCLOSED")."
".A4IDateFormat(substr($data,0,8))." ".substr($data,8,2).":".substr($data,10,2); $fatt=A4I_DBExtract("a4i_etrolley","fattura","id=$id"); if($fatt!="") print "$p

".A4Ilower(A4IMsg("GENFATT")); } } print "
"; print ""; $sconto=$totstd-$tottuo; $scontop=100-($tottuo*100/$totstd); if($sconto) // se non c'è sconto non lo faccio vedere { print ""; print ""; print ""; } // costi accessori (li ricalcolo e li riscrivo nella trolleyextra) $extra=0; if($dat[status]=="O") A4I_DBDelete("a4i_etrolleyextra","idtrolley=$id"); for($i=0; $i"; print ""; $extra+=$vals[0]; if(!$showi) $totiva+=$vals[1]; if($dat[status]=="O") A4I_DBInsert("a4i_etrolleyextra","idtrolley=$id,code='".$CAT_COSTI_ACCESSORI[$i][0]."',costo=".$vals[0].",iva=".$vals[1]); } } // iva if($totiva) { print ""; print ""; } // totale $totale=$tottuo+$totiva+$extra; if($dat[status]=="O") { $plus=A4IMsg("CATTOPAY"); A4I_DBUpdate("a4i_etrolley","totale=$totale","id=$id"); } else $plus=A4IMsg("CATPAYED"); print ""; print ""; print "
$p".A4IMsg("CATTOTSCON")."$p".number_format($sconto,2,",",".")." $valuta$p(".number_format($scontop,1,",","")."%)
$p".A4IMsg($CAT_COSTI_ACCESSORI[$i][2])."$p".number_format($vals[0],2,",",".")." $valuta
$p"."IVA$p".number_format($totiva,2,",",".")." $valuta
$p"."totale $plus$p".number_format($totale,2,",",".")." $valuta
"; print ""; if($datifatt) { print ""; print ""; if($giftmsg!="") print ""; } print "
$p".A4IMsg("CATADDFAT")."$p".stripslashes($fattu)."
$p".A4IMsg("CATADDCON")."$p".stripslashes($conse)."
 
$p".A4IMsg("CATGIFTOUT")."$p".stripslashes($giftmsg)."
"; print "
$p"; // OK ACQUISTA if($dat[status]=="O") { if(!$datifatt) $plus="&stat=1"; else $plus="&oper=PAY"; print A4I_CatalogImage("BUY",A4IMsg("CATGOBUY"),"?$A4I&code=$code$plus")."
"; print ""; if($passaggio!=1 and $dat[status]=="O") { print ""; if($datifatt or $daticons) print A4I_CatalogImage("ADDRESS",A4IMsg("CATMODADD"),"?$A4I&code=$code&stat=1")."
"; print ""; print A4I_CatalogImage("DELTROLLEY",A4IMsg("CATDELTROLL"),"javascript:askdelete();")."
"; } } } print ""; print ""; } // gestisce le (eventuali) operazioni del carrello function A4I_CatOper() { global $A4I,$A4IButton; $catoper=$_REQUEST["catoper"]; if($catoper!="") { if($catoper=="A2T") A4I_Add2Trolley($_REQUEST["catart"],$_REQUEST["catquant"]); else if($catoper=="BKMA") A4I_Add2Boomarks($_REQUEST["catart"]); else if($catoper=="BKMD") A4I_Add2Boomarks($_REQUEST["catart"],"DELETE"); } } // aggiunge un articolo al carrello dell'utente, se il carello non c'è ancora lo crea function A4I_Add2Trolley($idart,$quant=1,$forcetrolley=0) { global $A4I,$A4IButton; if($forcetrolley) $idtrolley=$forcetrolley; else { $idtrolley=A4I_TrolleyId(); if(!$idtrolley) $idtrolley=A4I_CreateTrolley(); } if(!$quant) $quant=1; // se il carrello non è dell'utente connesso, estraggo l'id del proprietario if($forcetrolley) { $idu=A4I_DBExtract("a4i_etrolley","iduser","id=$idtrolley"); $prezzo=A4I_GetArtUserFinalPrice($idart,$idu); } else $prezzo=A4I_GetArtUserFinalPrice($idart); A4I_DBInsert("a4i_etrolleyart","idtrolley=$idtrolley,idart=$idart,quant=$quant,prezzo=$prezzo"); // segna come booked nel magazzino A4I_DBInsert("a4i_catalogmag","iduser='".A4IUserId()."',idtrolley=$idtrolley,status='B',idart=$idart,quant=-$quant,data='".date("YmdHi")."'"); A4I_DBUpdate("a4i_etrolley","cliccato='".date("YmdHi")."'"); } // toglie un articolo dal carrello dell'utente // passare l'id della riga da eliminare function A4I_DelFromTrolley($idrow,$forcetrolley=0) { global $A4I,$A4IButton; if($forcetrolley) $idtrolley=$forcetrolley; else $idtrolley=A4I_TrolleyId(); // scarico il magazzino $idart=A4I_DBExtract("a4i_etrolleyart","idart","id=$idrow"); A4I_DBDelete("a4i_catalogmag","idtrolley=$idtrolley and idart=$idart"); A4I_DBDelete("a4i_etrolleyart","id=$idrow"); } // crea un carrello function A4I_CreateTrolley() { global $A4I,$A4IButton; $iduser=A4IUserId(); $now=date("YmdHi"); if($iduser) { A4I_DBInsert("a4i_etrolley","iduser=$iduser,status='O',creato='$now'"); return A4I_DBExtract("a4i_etrolley","id","iduser=$iduser and creato='$now'"); } else { $session=$_REQUEST["session"]; A4I_DBInsert("a4i_etrolley","session='$session',status='O',creato='$now'"); return A4I_DBExtract("a4i_etrolley","id","session='$session'"); } } function A4I_DeleteTrolley($id) { $ok=A4I_DBQuery("a4i_etrolleyart","*","idtrolley=$id"); while($dat=@mysql_fetch_assoc($ok)) A4I_DelFromTrolley($dat[id],$id); // toglie gli articoli (così li scarica dai prenotati) A4I_DBDelete("a4i_etrolleyart","idtrolley=$id"); A4I_DBDelete("a4i_etrolleydat","idtrolley=$id"); A4I_DBDelete("a4i_etrolleyextra","idtrolley=$id"); A4I_DBDelete("a4i_etrolley","id=$id"); } // ritorna l'id del carrello dell'utente connesso function A4I_TrolleyId() { global $A4I,$A4IButton; $iduser=A4IUserId(); if($iduser) return A4I_DBExtract("a4i_etrolley","id","iduser=$iduser and status='O'"); else { $session=$_REQUEST["session"]; if($session!="") return A4I_DBExtract("a4i_etrolley","id","session='".$_REQUEST["session"]."'"); else return 0; } } // ritorna il prezzo standard di un articolo function A4I_GetArtStandardPrice($idart) { global $A4I,$A4IButton; $idsco=A4I_DBExtract("a4i_catprices","id","code=0 and idnavigdef=0"); // code=0 è il prezzo standard, idnavigdef=0 è quello generico (non riferito alla categoria di struttura di navigazione) return A4I_GetArtPrice($idart,$idsco); } // ritorna il prezzo scontato di un articolo // se è gestita la struttura principale, ci possono essere diversi prezzi function A4I_GetArtDiscountPrice($idart) { global $A4I,$A4IButton; $idsco=A4I_DBExtract("a4i_catprices","id","code=1 and idnavigdef=0"); // code=1 è il prezzo scontato, idnavigdef=0 è quello generico (non riferito alla categoria di struttura di navigazione) return A4I_GetArtPrice($idart,$idsco); } // ritorna il prezzo promozionale di un articolo function A4I_GetArtPromoPrice($idart) { global $A4I,$A4IButton; $idsco=A4I_DBExtract("a4i_catprices","id","code=5 and idnavigdef=0"); // code=5 è il prezzo promozionale, idnavigdef=0 è quello generico (non riferito alla categoria di struttura di navigazione) return A4I_GetArtPrice($idart,$idsco); } // ritorna il prezzo per l'utente collegato (se ha una convenzione) function A4I_GetArtUserPrice($idart,$idu=0) { global $A4I,$A4IButton; // se l'utente è sconosciuto ritorna 0 if(!$idu) $idu=A4IUserId(); if(!$idu) return 0; // cerco la convenzione (eventuale) dell'utente, se non ce l'ha ritorno 0 $idconv=A4I_DBExtract("a4i_usersdata","tipocliente","id=$idu"); if($idconv) return A4I_GetArtPrice($idart,$idconv); else return 0; } // ritorna il prezzo di un articolo del tipo $idsco function A4I_GetArtPrice($idart,$idsco) { $ivati=A4I_DBExtract("a4i_info","valore","campo='cativati'"); $iva=A4I_DBExtract("a4i_catalogpri","prezzo","idprice=-1 and idart=$idart")/100; $showi=A4I_DBExtract("a4i_info","valore","campo='catshowivati'"); $price=A4I_DBExtract("a4i_catalogpri","prezzo","idprice='$idsco' and idart=$idart"); if(!$price) { // non c'è il prezzo scontato lo calcolo come sconto dello standard $idstd=A4I_DBExtract("a4i_catprices","id","code=0"); $price=A4I_DBExtract("a4i_catalogpri","prezzo","idprice='$idstd' and idart=$idart"); $sconto=A4I_DBExtract("a4i_catprices","sconto","id=$idsco and idnavigdef=0"); // se è gestita la struttura principale di navigazione, potrebbe esserci uno sconto generico // ed uno diverso per la categoria a cui appartiene l'articolo $maincat=A4I_DBExtract("a4i_info","valore","campo='catmaincat'"); if($maincat) { // verifico se l'articolo è assegnato ad una delle categorie della struttura principale $ok=A4I_DBQuery("a4i_catnavigdef","id","idnav=$maincat"); while($dat=mysql_fetch_assoc($ok)) { if(A4I_DBCount("a4i_catalognav","idart=$idart and iddef=".$dat[id])) { // è assegnato // ora estraggo la descrizione del prezzo generico $des=stripslashes(A4I_DBExtract("a4i_catprices","descrizione","id=$idsco and idnavigdef=0")); $sco=A4I_DBExtract("a4i_catprices","sconto","descrizione='".addslashes($des)."' and idnavigdef=".$dat[id]); // se è 0 significa che vale lo standard (idnavigdef=0) cioè quello con cui è stata chiamata la funzione if($sco) $sconto=$sco; break; } } } if($sconto==0) return 0; $sconto=$sconto/100; // se i prezzi sono memorizzati con IVA la scorporo if($ivati) $price=$price/(1.0+$iva); $price=$price*(1.0-$sconto); if($showi) $price=$price*(1.0+$iva); } else { if($ivati and !$showi) $price=$price/(1.0+$iva); else if(!$ivati and $showi) $price=$price*(1.0+$iva); } return $price; } // restituisce il prezzo finale per l'utente, gestendo l'IVA // è l'unione delle varie chiamate alle altre ArtPrice function A4I_GetArtUserFinalPrice($idart,$iduser=0) { global $A4I,$A4IButton; $arr=array(); $p=A4I_GetArtStandardPrice($idart); // prezzo standard if($p) $arr[]=$p; $p=A4I_GetArtDiscountPrice($idart); // prezzo scontato if($p) $arr[]=$p; $p=A4I_GetArtPromoPrice($idart); // prezzo promo if($p) $arr[]=$p; $p=A4I_GetArtUserPrice($idart,$iduser); // prezzo dell'utente (convenzione) if($p) $arr[]=$p; if(count($arr)) return min($arr); else return -1; } // ritorna il messaggio delle quantità disponibili // se anche le quantità future function A4I_GetArtStored($idart) { // configurazione: visualizzare disponibilità if(!A4I_DBExtract("a4i_info","valore","campo='catshowmag'")) return; $oggi=date("Ymd"); $in=A4I_DBExtract("a4i_catalogmag","sum(quant)","idart=$idart and quant>0 and data<='$oggi'"); $out=abs(A4I_DBExtract("a4i_catalogmag","sum(quant)","idart=$idart and quant<0")); $res=$in-$out; // configurazione: visualizzare disponibilità futura if(A4I_DBExtract("a4i_info","valore","campo='catshownext'")) { $in=A4I_DBExtract("a4i_catalogmag","sum(quant)","idart=$idart and quant>0 and data>'$oggi'"); if($in) { if($res) $res.=" (+$in in arrivo)"; else $res="$in di imminente arrivo"; } } return $res; } // ritorna true/false se l'articolo deve essere visualizzato function A4I_Art2Show($idart) { // configurazione: non visualizzare articoli non disponibili if(!A4I_DBExtract("a4i_info","valore","campo='catnoshowvoid'")) return true; $in=A4I_DBExtract("a4i_catalogmag","sum(quant)","idart=$idart and quant>0"); $out=abs(A4I_DBExtract("a4i_catalogmag","sum(quant)","idart=$idart and quant<0")); $res=$in-$out; if($res>0) return true; else return false; } // compatta un carrello function A4I_CompactTrolley($id) { $ids=array(); A4I_DBDelete("a4i_etrolleyart","idtrolley='$id' and quant=0"); $ok=A4I_DBQuery("a4i_etrolleyart","*","idtrolley='$id'","idart"); while($dat=mysql_fetch_assoc($ok)) { $found=false; for($i=0; $i"; return ""; } // invia le mail di sistema function A4I_CatMail($idtrolley,$mode) { // mail di avvenuto pagamento all'amministrazione if($mode=="PAYED") { $val=A4I_DBExtract("a4i_info","valore","campo='catmailpay'"); if($val!="") { // print ""; } return; } // mail di chiusura carrello (evasione ordine) if($mode=="CLOSE" and A4I_DBExtract("a4i_info","valore","campo='catmailclose'")) { // print ""; } } // trasferisce al sistema di pagamento esterno function A4I_PayTrolley($forcetrolley=0) { global $A4I,$A4IButton,$A4IUrl,$CAT_COSTI_ACCESSORI; if($forcetrolley) $idtrolley=$forcetrolley; else $idtrolley=A4I_TrolleyId(); if(A4I_DBExtract("a4i_etrolley","pagato","id=$idtrolley")!="") return; // se è già stato pagato ritorna al chiamante // assegno un numero d'ordine // cerco l'ultimo assegnato $numord=A4I_DBExtract("a4i_etrolley","ordine","id=$idtrolley"); if($numord=="") { $prefix=stripslashes(A4I_DBExtract("a4i_info","valore","campo='catprefix'")); $ok=A4I_DBExtract("a4i_etrolley","ordine","ordine desc"); $dat=@mysql_fetch_assoc($ok); $last=$dat[ordine]; if($last=="") $last=1; else $last=intval(substr($last,strlen($prefix)))+1; if(is_integer(strpos($prefix,"AAAA"))) $prefix=str_replace("AAAA",date("Y"),$prefix); $numord=$prefix.$last; A4I_DBUpdate("a4i_etrolley","ordine='$numord'","id=$idtrolley"); } // totale dell'ordine, converto in centesimi $totale=A4I_DBExtract("a4i_etrolley","totale","id=$idtrolley"); $importo=$totale*100; if(!$importo) { print ""; return; } // valuta $valuta=A4I_DBExtract("a4i_info","valore","campo='payvaluta'"); if($valuta=="") { print ""; return; } else { if($valuta=="EURO") $valuta=978; } // id negozio $idnegozio=A4I_DBExtract("a4i_info","valore","campo='payidshop'"); if(!$idnegozio) { print ""; return; } $url=substr($A4IUrl,0,strpos($A4IUrl,"#")); // urlback (l'url della pagina che chiama questa funzione) $requesturi=$_SERVER["REQUEST_URI"]; $requesturi=str_replace("<","",$requesturi); $requesturi=str_replace(">","",$requesturi); $urlback=str_replace("//","/",$url.$requesturi); $urlback=str_replace("http:/w","http://w",$url.$requesturi); $urlback=str_replace("https:/w","https://w",$url.$requesturi); if(!is_integer(strpos($urlback,"?"))) $urlback.="?"; $urlback.="&nipck=1"; // così non fa il controllo dell'ip chiamante ma prende quello memorizzato nella tabella session $urldone=$urlback; $urlback.="&done=-1"; $urldone.="&done=1"; // urlms (fisso COMMON/paydone.php) $urlms=str_replace("//","/","$url/COMMON/paydone.php?nipck=1"); // tcontab (D=differita, I=immediata) $tcontab=A4I_DBExtract("a4i_info","valore","campo='paycontab'"); if(!$tcontab) { print ""; return; } // tautor (D=differita, I=immediata) $tautor=A4I_DBExtract("a4i_info","valore","campo='payautor'"); if(!$tautor) { print ""; return; } // mac avvio $macavvio=A4I_DBExtract("a4i_info","valore","campo='paykeyavvio'"); if($macavvio=="") { print ""; return; } // LINGUA $lang=A4IActualLang(); if($lang=="ita" or $lang=="fra") $lingua=A4Iupper($lang); else if($lang=="ted") $lingua="DEU"; else if($lang=="esp") $lingua="SPA"; else $lingua="EN"; // mail esercente $emaileserc=A4I_DBExtract("a4i_info","valore","campo='paymail'"); $mac=md5("NUMORD=$numord&IDNEGOZIO=$idnegozio&IMPORTO=$importo&VALUTA=$valuta&TCONTAB=$tcontab&TAUTOR=$tautor&$macavvio"); $payurl=stripslashes(A4I_DBExtract("a4i_info","valore","campo='payurl'")); if(is_integer(strpos($payurl,"?"))) $plus="&"; else $plus="?"; $STR="NUMORD=$numord&IDNEGOZIO=$idnegozio&IMPORTO=$importo&VALUTA=$valuta&TCONTAB=$tcontab&TAUTOR=$tautor"; $STR.="&MAC=$mac&LINGUA=$lingua&EMAILESERC=".urlencode($emaileserc); $STR.="&URLBACK=".urlencode($urlback)."&URLDONE=".urlencode($urldone)."&URLMS=".urlencode($urlms); print ""; print ""; return $numord; } // cerca gli articoli che sono stati comprati da chi ha comprato $idart function A4ISimilBuyArt($idart) { $where="id=-1"; $ok=A4I_DBQuery("a4i_etrolleyart","idtrolley","idart=$idart"); while($dat=mysql_fetch_array($ok)) { $aa=A4I_DBQuery("a4i_etrolleyart","idart","idart!=$idart and idtrolley=$dat[0]"); while($aaa=mysql_fetch_array($aa)) $where=A4ISimilArtAdd($dat[0],$where); } return $where; } // cerca articoli simili a $idart function A4ISimilArt($idart,$excluded="") { $where="id=-1"; $campi=array("codice","articolo","articolo2","articolo3"); $param=array("cod","art","art2","art3"); for($i=0; $i$st) $where=A4ISimilArtAdd($dat[0],$where,$excluded); } } } } $lang=A4IActualLang(); $tipi=array("B","E"); $campi=array("bre","est"); for($i=0; $i$st) $where=A4ISimilArtAdd($dat[0],$where,$excluded); } } } } return $where; } function A4ISimilArtAdd($id,$where,$excluded="") { for($i=0; $i