PageRenderTime 67ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/gas2/function_engine/fun_ordini.php

https://github.com/mauromorello/ReteDES
PHP | 3726 lines | 2796 code | 712 blank | 218 comment | 142 complexity | 9b6f0f84408bfac4ca546a267beff1cf MD5 | raw file
Possible License(s): LGPL-2.1, BSD-3-Clause
  1. <?php
  2. //V3
  3. function lista_ordini_aperti(){
  4. global $db;
  5. $my_query="SELECT retegas_ordini.id_ordini,
  6. retegas_ordini.descrizione_ordini,
  7. retegas_listini.descrizione_listini,
  8. retegas_ditte.descrizione_ditte,
  9. retegas_ordini.data_chiusura,
  10. retegas_gas.descrizione_gas,
  11. retegas_referenze.id_gas_referenze,
  12. maaking_users.userid,
  13. maaking_users.fullname,
  14. retegas_ordini.id_utente,
  15. retegas_ordini.id_listini,
  16. retegas_ditte.id_ditte,
  17. retegas_ordini.data_apertura
  18. FROM (((((retegas_ordini INNER JOIN retegas_referenze ON retegas_ordini.id_ordini = retegas_referenze.id_ordine_referenze) LEFT JOIN maaking_users ON retegas_referenze.id_utente_referenze = maaking_users.userid) INNER JOIN retegas_listini ON retegas_ordini.id_listini = retegas_listini.id_listini) INNER JOIN retegas_ditte ON retegas_listini.id_ditte = retegas_ditte.id_ditte) INNER JOIN maaking_users AS maaking_users_1 ON retegas_ordini.id_utente = maaking_users_1.userid) INNER JOIN retegas_gas ON maaking_users_1.id_gas = retegas_gas.id_gas
  19. WHERE (((retegas_ordini.data_chiusura)>NOW()) AND ((retegas_ordini.data_apertura)<NOW()) AND ((retegas_referenze.id_gas_referenze)="._USER_ID_GAS."))
  20. ORDER BY retegas_ordini.data_chiusura ASC ;";
  21. $result = $db->sql_query($my_query);
  22. $n_rows = $db->sql_numrows($result);
  23. $riga=0;
  24. $t="<div class=\"list-group\">";
  25. while ($row = $db->sql_fetchrow($result)){
  26. $riga++;
  27. //TEMPO ALLA CHIUSURA
  28. $inittime=time();
  29. $datexmas=strtotime($row["data_chiusura"]);
  30. $timediff = $datexmas - $inittime;
  31. $days=intval($timediff/86400);
  32. $remaining=$timediff%86400;
  33. $hours=intval($remaining/3600);
  34. $remaining=$remaining%3600;
  35. $mins=intval($remaining/60);
  36. $secs=$remaining%60;
  37. if($days>0){
  38. $dd="<b>$days</b> "._pl("giorn","o","i",$days)." e <b>$hours</b> "._pl("or","a","e",$hours).".";
  39. }else{
  40. if($hours>0){
  41. $dd="<span class=\"label label-danger\">CHIUDE tra $hours "._pl("or","a","e",$hours)." !</span>";
  42. }else{
  43. $dd="<span class=\"label label-danger\">CHIUDE tra $mins "._pl("minut","o","i",$mins)." !</span>";
  44. }
  45. }
  46. $referente_generale = id_referente_ordine_globale($row["id_ordini"]);
  47. $referente_gas = id_referente_ordine_proprio_gas($row["id_ordini"],_USER_ID_GAS);
  48. if($referente_generale<>$referente_gas){
  49. if($referente_gas>0){
  50. $gas="<small>".fullname_referente_ordine_proprio_gas($row["id_ordini"],_USER_ID_GAS)."</small><br>";
  51. }else{
  52. $gas="<span class=\"label label-primary\">GAS Esterno</span>";
  53. }
  54. }else{
  55. $gas_ext="";
  56. $gas="<small>".fullname_referente_ordine_proprio_gas($row["id_ordini"],_USER_ID_GAS)."</small><br>";
  57. }
  58. $back_color="";
  59. if($referente_gas>0){
  60. $pal = '<a title="Ordine partecipabile"><IMG SRC="'.$RG_addr["img_pallino_verde"].'" ALT="Partecipabile" style="height:10px; width:10px;vertical_align:middle;border=0;"></a>';
  61. $vis="OK";
  62. $ref="";
  63. }else{
  64. if(check_option_order_blacklist(_USER_ID_GAS,$row["id_ordini"])==0){
  65. $pal = '<a title="Manca il referente per il tuo GAS"><IMG SRC="'.$RG_addr["img_pallino_marrone"].'" ALT="NON Partecipabile" style="height:10px; width:10px;vertical_align:middle;border=0;"></a>';
  66. $ref ="<span class=\"label label-warning\">Referente ?</span>";
  67. $back_color="ordine_esterno_class";
  68. $vis="OK";
  69. }else{
  70. $vis="";
  71. $ref="";
  72. }
  73. }
  74. $mia_spesa = valore_arrivato_netto_ordine_user($row["id_ordini"],_USER_ID);
  75. if($mia_spesa>0){
  76. $spesa="<span class=\"label label-success totale_ordine_box\" data-id_ordine=\"".$row["id_ordini"]."\">$mia_spesa &euro;</span>";
  77. }else{
  78. $spesa="";
  79. }
  80. if($vis=="OK"){
  81. $t .="
  82. <a href=\"#\" class=\"list-group-item goto_ord $back_color\" data-id_ordine=\"".$row["id_ordini"]."\" style=\"min-height:80px;\">
  83. <img class=\"pull-left\" SRC = ".icona_ordine($row["id_ordini"])." style=\"max-width:48px;margin-right:10px;margin-bottom:5px;\">
  84. <span class=\"pull-right\">$dd</span>
  85. $gas
  86. <span class=\"lead hidden-xs\" style=\"margin-bottom:0;\">".$row["descrizione_ordini"]."</span>
  87. <span class=\"visible-xs\">".$row["descrizione_ordini"]."</span>
  88. $ref $spesa $gas_ext
  89. </a>";
  90. }
  91. }//end while
  92. $t .="</div>";
  93. if($n_rows==0){$t="Nessun ordine aperto per il tuo GAS";}
  94. return '<div class="panel panel-primary">
  95. <div class="panel-heading">
  96. <h4 class="panel-title" style="color:#222222"><b>Ordini Aperti </b><small>Clicca su ogni ordine per aprirne la sua scheda.</small></h4>
  97. </div>'.$t.'</div>';
  98. }
  99. function icona_ordine($id_ordine){
  100. global $db;
  101. $id_categoria = tipologia_id_from_listino(listino_ordine_from_id_ordine($id_ordine));
  102. switch ($id_categoria){
  103. case 1;
  104. $h = "http://retegas.altervista.org/gas3/icone/alimentari_240.png";
  105. break;
  106. case 2;
  107. $h = "http://retegas.altervista.org/gas3/icone/cereali_240.png";
  108. break;
  109. case 3;
  110. $h = "http://retegas.altervista.org/gas3/icone/frutta_verdura_240.png";
  111. break;
  112. case 4;
  113. $h = "http://retegas.altervista.org/gas3/icone/carne_pesce_240.png";
  114. break;
  115. case 5;
  116. $h = "http://retegas.altervista.org/gas3/icone/alimentari_240.png";
  117. break;
  118. case 7;
  119. $h = "http://retegas.altervista.org/gas3/icone/dolciumi_240.png";
  120. break;
  121. case 8;
  122. $h = "http://retegas.altervista.org/gas3/icone/intimo_240.png";
  123. break;
  124. case 12;
  125. $h = "http://retegas.altervista.org/gas3/icone/vino_240.png";
  126. break;
  127. case 13;
  128. $h = "http://retegas.altervista.org/gas3/icone/cosmetici_240.png";
  129. break;
  130. case 17;
  131. $h = "http://retegas.altervista.org/gas3/icone/formaggio_240.png";
  132. break;
  133. default:
  134. $h = "http://retegas.altervista.org/gas3/img/RD_v3_160.png";
  135. break;
  136. }
  137. return $h;
  138. }
  139. function status_ordine($id_ordine){
  140. global $db;
  141. $mia_spesa = valore_arrivato_netto_ordine_user($id_ordine,_USER_ID);
  142. $miei_articoli = round(qta_ord_ordine_user($id_ordine,_USER_ID),2);
  143. $mie_note_ordine = read_option_note(_USER_ID,"ORD_NOTE_".$id_ordine);
  144. if($mie_note_ordine==""){
  145. $mie_note_ordine = "Clicca per scrivere una nota riferita a quest'ordine";
  146. $empty = "Clicca per scrivere una nota riferita a quest'ordine";
  147. }
  148. if($mia_spesa>0){
  149. $h ='<div class="jumbotron">
  150. <p><strong>IN ORDINE:</strong></p>
  151. <p><strong>'.$miei_articoli.'</strong> '._pl("articol","o","i",$miei_articoli).'</p>
  152. <p>per <strong>'._nf($mia_spesa).'</strong> Euro</p>
  153. <p><a href="#" id="note_personali" data-type="textarea" data-pk="'.$id_ordine.'" data-url="_pages/ACT.php?act=update_note_personali" data-title="Le note personali saranno visibili dal referente ordine">'.$mie_note_ordine.'</a></p>
  154. </div>';
  155. }else{
  156. $h ='<div class="jumbotron">
  157. <p>Non hai ancora comprato nulla.</p>
  158. </div>';
  159. }
  160. return $h;
  161. }
  162. // UPDATE ORDINI (CRON)
  163. function update_ordini_chiusi(){
  164. global $db,$RG_addr;
  165. $loggone=null;
  166. // seleziona gli ordini ancora aperti (2) con data chiusura gi? passata;
  167. $query_msg = "SELECT * from retegas_ordini
  168. WHERE ((retegas_ordini.id_stato='2')
  169. AND (retegas_ordini.data_chiusura <= now()));";
  170. $result_msg = $db->sql_query($query_msg);
  171. // se ci sono righe da modificare allora
  172. if($db->sql_numrows($result_msg)>0){
  173. $loggone .= "Ci sono righe da modificare<br>";
  174. while ($row = $db->sql_fetchrow($result_msg)){
  175. $n++;
  176. $ordine = $row["id_ordini"];
  177. $descrizione = $row["descrizione_ordini"];
  178. $messaggio = "Ordine $ordine chiuso automaticamente.";
  179. $valore_ordine_netto = valore_totale_ordine($ordine);
  180. $utenti_ordine = ordine_bacino_utenti_part($ordine);
  181. $articoli_ordinati = articoli_in_ordine($ordine);
  182. $htg =read_option_gas_text_new(id_gas_user(id_referente_ordine_globale($ordine)),"_HASHTAG_GAS");
  183. if($htg<>""){
  184. $htg = "#".$htg." ";
  185. }
  186. $msg_twitter = $htg."Ord. \"".substr($descrizione,0,30)."...\" CHIUSO (".gas_nome(id_gas_user(id_referente_ordine_globale($ordine))).")";
  187. //ELIMINAZIONE DEGLI ORDINI CON LA PRENOTAZIONE ANCORA ATTIVA
  188. //SONO A LIVELLO DI ORDINE
  189. //CERCO TRA LE OPZIONI QUELLA "" RIFERITA AD ORDINE, RICAVO UNA LISTA DI USERS
  190. //PER OGNI USER : CANCELLO ARTICOLI
  191. $verbose.= "Eliminazione articoli con prenotazione attiva. Ordine $ordine<br>";
  192. $sql_prenotazione = "SELECT * FROM retegas_options WHERE id_ordine='$ordine' AND chiave='PRENOTAZIONE_ORDINI';";
  193. $res_prenotazione = $db->sql_query($sql_prenotazione);
  194. $num_prenotazioni = $db->sql_numrows($res_prenotazione);
  195. $verbose.= "Trovate $num_prenotazioni prenotazioni, usando $sql_prenotazione<br>";
  196. while ($row_p = $db->sql_fetchrow($res_prenotazione)){
  197. $verbose .= "Utente : ".$row_p["id_user"]." Con prenotazione attiva, Cancellati i suoi articoli<br>";
  198. do_delete_all_ordine_user($ordine,$row_p["id_user"]);
  199. //Diamogli respiro
  200. usleep(500);
  201. //Cancello la prenotazione
  202. delete_option_prenotazione_ordine($ordine,$row_p["id_user"]);
  203. }
  204. //FINE ELIMINAZIONE ORDINI CON LA PRENOTAZIONE ANCORA ATTIVA
  205. $verbose .= controlla_integrita_ordine_totale($ordine);
  206. usleep(5000);
  207. $loggone .= "Riga $n - Ordine $ordine - $descrizione<br>";
  208. log_me($ordine,0,"ORD","MOD",$messaggio,0,$verbose);
  209. tweet($msg_twitter);
  210. $loggone .= "Loggato -$messaggio- <br>";
  211. $verso_chi = fullname_referente_ordine_globale($ordine);
  212. $mail_verso_chi = mail_referente_ordine_globale($ordine);
  213. $id_verso_chi = id_referente_ordine_globale($ordine);
  214. $da_chi = _SITE_NAME." - Non rispondere";
  215. $mail_da_chi = _SITE_MAIL_REAL;
  216. $gas_name = gas_nome(id_gas_user($id_verso_chi));
  217. // manda la mail di chiusura al referente
  218. if($row["mail_level"]>0){
  219. $loggone .= "Mail level di ordine $ordine maggiore di 0 <br>";
  220. $eol ="\r\n";
  221. if($utenti_ordine<>0){}else{
  222. $m = "PS : Siccome non vi sono partecipanti, è possibile cancellare questo ordine da ReteDes seguendo questo <a href=\"".$RG_addr["delete_ordine"]."?id_ordine=$ordine\" target=\"_blank\">link.</a>";
  223. }
  224. $message = "L'ordine $ordine ($descrizione) gestito da $gas_name, si è appena chiuso automaticamente.<br>
  225. Lo puoi vedere nella pagina ORDINI CHIUSI del sito.<br>
  226. ------------------------------------------------------ <br>
  227. Valore netto merce ordinata : $valore_ordine_netto Eu. <br>
  228. Utenti partecipanti : $utenti_ordine; <br>
  229. ------------------------------------------------------ <br>
  230. Di seguito una lista di operazioni che puoi fare ora che l'ordine è chiuso:<br>
  231. <br>
  232. 1. <a href=\"".$RG_addr["edit_costi"]."?id_ordine=$ordine\">Cambiare</a> le spese di spedizione e di gestione<br>
  233. 2. <a href=\"".$RG_addr["partecipat_cronologia"]."?id_ordine=$ordine\">Controllare</a> la cronologia degli acquisti<br>
  234. 3. <a href=\"".$RG_addr["edit_spese_gas"]."?id_ordine=$ordine\">Modificare</a> le spese sostenute dal proprio GAS<br>
  235. 4. <a href=\"".$RG_addr["convalida_ordine"]."?id_ordine=$ordine\">Confermare</a> o <a href=\"".$RG_addr["rettifica_singoli_valori"]."&id_ordine=$ordine\">correggere</a> i quantitativi di articoli arrivati, o i loro prezzi.<br>
  236. 5. <a href=\"".$RG_addr["edit_distribuzione_gas"]."?id_ordine=$ordine\">Impostare</a> le date e gli orari e i luoghi di distribuzione merce; (Per ogni gas partecipante).<br>
  237. 6. <a href=\"".$RG_addr["edit_scadenze"]."?id_ordine=$ordine\">Riaprire</a> l'ordine posticipandone la scadenza.<br>
  238. 7. <a href=\"http://www.treccani.it/enciclopedia/ecc-o-etc_(La_grammatica_italiana)/\">ecc ecc ecc</a>
  239. <br>
  240. Buona Distribuzione !!!
  241. <br>
  242. $m<br>
  243. <br> ";
  244. $message .= "Questa è una mail generata automaticamente, <br>
  245. non rispondere a questo indirizzo. " ;
  246. $soggetto = "["._SITE_NAME." * $gas_name*] - Chiusura ordine $ordine ($descrizione)";
  247. $mail_mandata = "";
  248. if(read_option_text($id_verso_chi,"_USER_OPT_SEND_MAIL")<>"NO"){
  249. manda_mail($da_chi,$mail_da_chi,$verso_chi,$mail_verso_chi,$soggetto,$message,"AUT",$ordine);
  250. $mail_mandata = "(User NO Mail)";
  251. usleep(5000);
  252. }
  253. $loggone .= "Mail $mail_mandata da $da_chi ($mail_da_chi) verso $verso_chi ($mail_verso_chi) <br>";
  254. } // mail_level
  255. // manda la mail di chiusura ai partecipanti
  256. } //while
  257. // poi esegue l'aggiornamento
  258. $loggone .= "Uscito da ciclo ordini<br>";
  259. $query = "UPDATE `retegas_ordini`
  260. SET `id_stato` = '3'
  261. WHERE (`retegas_ordini`.`data_chiusura` <= now())
  262. AND (`retegas_ordini`.`id_stato` = '2');";
  263. $result = $db->sql_query($query);
  264. $righe_interessate = $db->sql_affectedrows($result);
  265. usleep(5000);
  266. $loggone .= "Eseguito aggiornamento: $righe_interessate righe interessate<br>";
  267. log_me(0,0,"CRO","---",$loggone,0,"");
  268. }
  269. return $loggone;
  270. }
  271. function update_ordini_aperti() {
  272. global $db,$RG_addr;
  273. $loggone=null;
  274. // seleziona gli ordini ancora da aprire (1) con data apertura già passata;
  275. $query_msg = "SELECT * from retegas_ordini
  276. WHERE ((retegas_ordini.id_stato='1')
  277. AND (retegas_ordini.data_apertura <= now()));";
  278. $result_msg = $db->sql_query($query_msg);
  279. // se ci sono righe da modificare allora
  280. if($db->sql_numrows($result_msg)>0){
  281. $loggone .= "Ci sono ordini futuri da rendere presenti\n";
  282. while ($row = $db->sql_fetchrow($result_msg)){
  283. $n++;
  284. $ordine = $row["id_ordini"];
  285. $descrizione = $row["descrizione_ordini"];
  286. $note = $row["note_ordini"];
  287. if($note<>""){
  288. $note ="<p>Il gestore ha aggiunto delle note : <p><br><p>$note</p>";
  289. }else{
  290. $note ="";
  291. }
  292. $data_chiusura =conv_date_from_db($row["data_chiusura"]);
  293. $messaggio = "Ordine $ordine aperto automaticamente.";
  294. $msg_twitter = "\"".substr($descrizione,0,50)."..\" APERTO dal ".gas_nome(id_gas_user(id_referente_ordine_globale($ordine)))."!";
  295. $loggone .= "Riga $n - Ordine $ordine - $descrizione\n";
  296. log_me($ordine,0,"ORD","APE",$messaggio,0,"");
  297. tweet($msg_twitter);
  298. $loggone .= "Loggato -$messaggio- \n";
  299. // MANDA LE MAIL Agli utenti interessati
  300. //---------------------------------------------------
  301. $titolo_form_mail="Manda un messaggio al bacino di potenziali utenti di questo ordine, che hanno accettato di ricevere aggiornamenti da parte del sito.";
  302. $qry="SELECT
  303. maaking_users.fullname,
  304. maaking_users.email,
  305. maaking_users.user_site_option,
  306. retegas_referenze.id_gas_referenze,
  307. retegas_gas.descrizione_gas,
  308. maaking_users.userid
  309. FROM
  310. retegas_ordini
  311. Inner Join retegas_referenze ON retegas_ordini.id_ordini = retegas_referenze.id_ordine_referenze
  312. Inner Join maaking_users ON retegas_referenze.id_gas_referenze = maaking_users.id_gas
  313. Inner Join retegas_gas ON retegas_referenze.id_gas_referenze = retegas_gas.id_gas
  314. WHERE
  315. maaking_users.isactive ='1' AND
  316. retegas_ordini.id_ordini = '$ordine'";
  317. unset($verso_chi);
  318. unset($mail_verso_chi);
  319. $result = mysql_query($qry);
  320. $lista_destinatari ="";
  321. //Crea la lista dei destinatari
  322. while ($row_m = mysql_fetch_array($result)){
  323. //se l'utente ? attivo
  324. if(user_status($row[5])==1){
  325. //Se l'utente non vuole mail
  326. if(read_option_text($row[5],"_USER_OPT_SEND_MAIL")<>"NO"){
  327. $verso_chi[] = $row_m[0] ;
  328. $mail_verso_chi[] = $row_m[1] ;
  329. $lista_destinatari .= $row_m[0]." (".$row_m[4].");\n";
  330. }
  331. }
  332. }// END WHILE
  333. //----------------------------------------------------
  334. $da_chi = _SITE_NAME;
  335. $mail_da_chi = _SITE_MAIL_REAL;
  336. $message = "L'ordine $ordine ($descrizione) è aperto,<br>
  337. e lo sarà fino al $data_chiusura (salvo modifiche da parte del referente).<br>
  338. Lo puoi vedere nella pagina ORDINI APERTI del sito.<br>
  339. oppure cliccando questo <a href=\"".$RG_addr["ordini_form"]."?id_ordine=$ordine\">link</a><br>
  340. <br>
  341. <p>Novità : E' possibile (per i referenti di questo ordine) impostare le date e gli orari di distribuzione merce, che appariranno nel calendario della versione 3.</p>
  342. <br>
  343. $note
  344. <br>
  345. Buoni acquisti !!!
  346. <br>
  347. <br>
  348. <br> ";
  349. $message .= "Questa è una mail generata automaticamente. <br>" ;
  350. $soggetto = "["._SITE_NAME."] - Apertura ordine $ordine ($descrizione)";
  351. manda_mail_multipla_istantanea($da_chi,$mail_da_chi,$verso_chi,$mail_verso_chi,$soggetto,strip_tags($message),"AUT",$ordine,0,$message);
  352. $loggone .= "AVVISO DI APERTURA Mail da $da_chi ($mail_da_chi) verso:\n
  353. $lista_destinatari \n";
  354. } //while
  355. // poi esegue l'aggiornamento
  356. $loggone .= "Uscito da ciclo ordini\n";
  357. $query = "UPDATE `retegas_ordini`
  358. SET `id_stato` = '2'
  359. WHERE `retegas_ordini`.`data_apertura` <= now()
  360. AND `retegas_ordini`.`data_chiusura` > now()
  361. ";
  362. $result = $db->sql_query($query);
  363. $righe_interessate = $db->sql_affectedrows($result);
  364. $loggone .= "Eseguito aggiornamento: $righe_interessate righe interessate\n";
  365. log_me(0,0,"CRO","---",$loggone,0,"");
  366. }
  367. return $loggone;
  368. }
  369. //FUNZIONI GENERICHE
  370. function ordini_field_value($id_ordine,$field_name){
  371. Global $db;
  372. Global $debug;
  373. (int)$id_ordine;
  374. if(!(isset($id_ordine)|isset($field_name))){
  375. return null;
  376. exit;
  377. }
  378. $query = "SELECT * FROM retegas_ordini WHERE id_ordini='$id_ordine' LIMIT 1;";
  379. $res = $db->sql_query($query,null,"Ordini field value");
  380. $row = $db->sql_fetchrow($res);
  381. return $row["$field_name"];
  382. }
  383. function rompi_le_balle($ordine,$id_user=0,$nome_partecipante=null,$id_partecipante=null){
  384. global $RG_addr;
  385. $verso_chi = fullname_referente_ordine_globale($ordine);
  386. $mail_verso_chi = mail_referente_ordine_globale($ordine);
  387. $descrizione = descrizione_ordine_from_id_ordine($ordine);
  388. $valore_ordine_netto = valore_totale_ordine($ordine);
  389. $utenti_ordine = ordine_bacino_utenti_part($ordine);
  390. $articoli_ordinati = articoli_in_ordine($ordine);
  391. $nome_partecipante = fullname_from_id($id_user);
  392. $gas_partecipante = gas_nome(id_gas_user($id_user));
  393. $da_chi = _SITE_NAME;
  394. $mail_da_chi = "retegas@altervista.org";
  395. if(livello_rompimento_ordine($ordine)>1){
  396. $eol ="<br>";
  397. $message = "<a href=\"".$RG_addr["ordini_form_new"]."?id_ordine=$ordine\">Ordine - $ordine ($descrizione)</a>.$eol
  398. Il Sig. $nome_partecipante del $gas_partecipante $eol
  399. ha appena partecipato.
  400. $eol
  401. Adesso l'ordine vale $valore_ordine_netto Eu.$eol
  402. e vi stanno partecipando $utenti_ordine utenti;$eol
  403. ------------------------------------------------------ $eol
  404. $eol
  405. ATTENZIONE l'ordine NON e' ancora chiuso, queste informazioni$eol
  406. sono da considerarsi incomplete.$eol ";
  407. $message .= "-------------------------------------------- $eol";
  408. $message .= _SITE_NAME."$eol";
  409. $message .= "$eol";
  410. $message .= "$eol";
  411. $message .= "Questa mail viene generata automaticamente. $eol" ;
  412. $soggetto = "["._SITE_NAME."] - Rapporto attivita' su ordine $ordine ($descrizione)";
  413. //echo $message;
  414. manda_mail($da_chi,$mail_da_chi,$verso_chi,$mail_verso_chi,$soggetto,null,"AUT",$ordine,$id_user,$message);
  415. } // mail_level
  416. }
  417. function controlla_integrita_ordine_qord($id_ordine,$id_utente){
  418. global $db,$class_debug;
  419. $msg.= "Controllo integrità referenziale Q_Ord Ordine $id_ordine, user $id_utente";
  420. $sql_1 = "SELECT * FROM retegas_dettaglio_ordini WHERE id_ordine='$id_ordine' AND id_utenti='$id_utente'";
  421. $res_1 = $db->sql_query($sql_1);
  422. While ($row = mysql_fetch_array($res_1)){
  423. $sql_2 = "SELECT
  424. Sum(retegas_distribuzione_spesa.qta_ord) AS somma_qord
  425. FROM
  426. retegas_distribuzione_spesa
  427. WHERE
  428. retegas_distribuzione_spesa.id_articoli = '".$row["id_articoli"]."' AND
  429. retegas_distribuzione_spesa.id_user = '".$id_utente."' AND
  430. retegas_distribuzione_spesa.id_ordine = '".$id_ordine."';";
  431. $res_2 = $db->sql_query($sql_2);
  432. $row_2 = $db->sql_fetchrow($res_2);
  433. $somma_distribuzione_qord = round($row_2[0],4);
  434. $msg.= " Art ".$row["id_articoli"]." - DETTAGLIO = ".round($row["qta_ord"],4)." - SOMMA distribuzione - $somma_distribuzione_qord<br>";
  435. if($somma_distribuzione_qord<>round($row["qta_ord"],4)){
  436. $err++;
  437. }
  438. }
  439. if($err>0){
  440. //log_me($id_ordine,_USER_ID,"ERR","QOR","ERRORE IN Q ORD",0,$msg);
  441. return false;
  442. break;
  443. }
  444. return true;
  445. }
  446. function controlla_integrita_ordine_qarr($id_ordine,$id_utente){
  447. l("Controllo integrità referenziale Q_Arr Ordine $id_ordine, user $id_utente");
  448. global $db;
  449. $sql_1 = "SELECT * FROM retegas_dettaglio_ordini WHERE id_ordine='$id_ordine' AND id_utenti='$id_utente'";
  450. $res_1 = $db->sql_query($sql_1);
  451. While ($row = mysql_fetch_array($res_1)){
  452. $sql_2 = "SELECT
  453. Sum(retegas_distribuzione_spesa.qta_arr) AS somma_qarr
  454. FROM
  455. retegas_distribuzione_spesa
  456. WHERE
  457. retegas_distribuzione_spesa.id_articoli = '".$row["id_articoli"]."' AND
  458. retegas_distribuzione_spesa.id_user = '".$id_utente."' AND
  459. retegas_distribuzione_spesa.id_ordine = '".$id_ordine."';";
  460. $res_2 = $db->sql_query($sql_2);
  461. $row_2 = $db->sql_fetchrow($res_2);
  462. $somma_distribuzione_qarr = round($row_2[0],4);
  463. l(" Art ".$row["id_articoli"]." - DETTAGLIO = ".round($row["qta_ord"],4)." - SOMMA distribuzione - $somma_distribuzione_qarr");
  464. if($somma_distribuzione_qarr<>round($row["qta_arr"],4)){
  465. $err++;
  466. }
  467. }
  468. if($err>0){
  469. return false;
  470. break;
  471. }
  472. return true;
  473. }
  474. function controlla_integrita_ordine_totale($id_ordine){
  475. global $db;
  476. $sql ="SELECT * FROM retegas_dettaglio_ordini WHERE id_ordine='$id_ordine';";
  477. $h .= "<div>";
  478. $h .= "<h4>Controllo integrità ordine $id_ordine (".descrizione_ordine_from_id_ordine($id_ordine).")</h4>";
  479. $h .= $sql."<p>";
  480. $res = $db->sql_query($sql);
  481. While ($row = mysql_fetch_array($res)){
  482. $h .= "UTENTE : ".$row["id_utenti"]." - (".fullname_from_id($row["id_utenti"]).") ARTICOLO: ".$row["id_articoli"]."
  483. <br>DETTAGLIO ".$row["id_dettaglio_ordini"].", Q_ord: ".$row["qta_ord"]." Q_arr: ".$row["qta_arr"]."<br>";
  484. $sql_d="SELECT
  485. sum(retegas_distribuzione_spesa.qta_ord) as Qord,
  486. sum(retegas_distribuzione_spesa.qta_arr) as Qarr,
  487. count(retegas_distribuzione_spesa.id_distribuzione) as Nrec
  488. FROM
  489. retegas_distribuzione_spesa
  490. WHERE
  491. retegas_distribuzione_spesa.id_riga_dettaglio_ordine = '".$row["id_dettaglio_ordini"]."'
  492. GROUP BY
  493. retegas_distribuzione_spesa.id_articoli
  494. LIMIT 1";
  495. $ret_d = mysql_query($sql_d);
  496. $row_d = mysql_fetch_row($ret_d);
  497. $q_ord = $row_d[0];
  498. $q_arr = $row_d[1];
  499. $n_rec = $row_d[2];
  500. if($q_ord<>$row["qta_ord"]){
  501. $h.="<strong>ERRORE Q ORD</strong><br>";
  502. }
  503. if($q_arr<>$row["qta_arr"]){
  504. $h.="<strong>ERRORE Q ARR</strong><br>";
  505. }
  506. $h .= "DISTRIBUZI ".$row["id_dettaglio_ordini"].", Q_ord: $q_ord Q_arr: $q_arr, N. Records = $n_rec<br>";
  507. $h .= "<hr>";
  508. }
  509. $h .= "</p>";
  510. $h .= "</div>";
  511. return $h;
  512. }
  513. //SCHEDE ORDINI
  514. function schedina_ordine($id_ordine){
  515. global $db,$RG_addr;
  516. if(isset($id_ordine)){
  517. $query = "SELECT * FROM retegas_ordini WHERE id_ordini='$id_ordine' LIMIT 1";
  518. $res = $db->sql_query($query);
  519. $row = $db->sql_fetchrow($res);
  520. if($row["id_stato"]==1){
  521. $stato = "PROGRAMMATO";
  522. $pal = '<a><IMG SRC="'.$RG_addr["img_pallino_blu"].'" ALT="Futuro" style="height:16px; width:16px;vertical_align:middle;border=0;" ></a>';
  523. }
  524. if($row["id_stato"]==2){
  525. $stato = "APERTO";
  526. if(id_referente_ordine_proprio_gas($row["id_ordini"],_USER_ID_GAS)>0){
  527. $pal = '<a><IMG SRC="'.$RG_addr["img_pallino_verde"].'" ALT="Partecipabile" style="height:16px; width:16px;border=0;" ></a>';
  528. }else{
  529. $pal = '<a><IMG SRC="'.$RG_addr["img_pallino_marrone"].'" ALT="NON Partecipabile" style="height:16px; width:16px;vertical_align:middle;border=0;"></a>';
  530. }
  531. }
  532. if($row["id_stato"]==3){
  533. if(is_printable_from_id_ord($row["id_ordini"])){
  534. $stato = "CHIUSO - CONVALIDATO";
  535. $pal = '<IMG SRC="'.$RG_addr["img_pallino_grigio"].'" ALT="Stampabile" style="height:16px; width:16px;vertical_align:middle;border=0;">';
  536. }else{
  537. $stato = "CHIUSO - IN ATTESA DI CONVALIDA";
  538. $pal = '<IMG SRC="'.$RG_addr["img_pallino_rosso"].'" ALT="NON Stampabile" style="height:16px; width:16px;vertical_align:middle;border=0;">';
  539. }
  540. }
  541. $id_listino = $row["id_listini"];
  542. $id_ditta = ditta_id_from_listino($id_listino);
  543. $h = '<table>
  544. <thead>
  545. </thead>
  546. <tbody>
  547. <tr>
  548. <td width="33%">
  549. <table class="nested">
  550. <thead>
  551. </thead>
  552. <tbody>
  553. <tr class="odd sinistra">
  554. <th>Categoria</th>
  555. <td>'.tipologia_nome_from_listino($row["id_listini"]).'</td>
  556. </tr>
  557. <tr class="odd sinistra">
  558. <th>Stato:</th>
  559. <td>'.$stato.'</td>
  560. </tr>
  561. </tbody>
  562. </table>
  563. </td>
  564. <td width="33%">
  565. <table class="nested">
  566. <thead>
  567. </thead>
  568. <tbody>
  569. <tr class="odd sinistra">
  570. <th>Ditta</th>
  571. <td><a href="'.$RG_addr["form_ditta"].'?id_ditta='.$id_ditta.'">'.ditta_nome(ditta_id_from_listino($row["id_listini"])).'</a></td>
  572. </tr>
  573. <tr class="odd sinistra">
  574. <th>Listino</th>
  575. <td><a href="'.$RG_addr["listini_scheda"].'?id_listino='.$id_listino.'">'.listino_nome($row["id_listini"]).'</a></td>
  576. </tr>
  577. </tbody>
  578. </table>
  579. </td>
  580. <td width="33%">
  581. <table class="nested">
  582. <thead>
  583. </thead>
  584. <tbody >
  585. <tr class="odd sinistra">
  586. <th>Aperto il</th>
  587. <td>'.conv_datetime_from_db($row["data_apertura"]).'</td>
  588. </tr>
  589. <tr class="odd sinistra">
  590. <th>Chiude il</th>
  591. <td>'.conv_datetime_from_db($row["data_chiusura"]).'</td>
  592. </tr>
  593. </tbody>
  594. </table>
  595. </td>
  596. </tr>
  597. </tbody>
  598. </table>
  599. ';
  600. }
  601. if(read_option_prenotazione_ordine($id_ordine,_USER_ID)=="SI"){
  602. $prenota = " <span style=\"color:red;font-weight:bold\">(ORDINE in PRENOTAZIONE)</span> ";
  603. }else{
  604. $prenota = "";
  605. }
  606. $h2 = rg_toggable($pal.' Ordine n.'.$row["id_ordini"].' - '.$row["descrizione_ordini"].', di '.fullname_from_id($row["id_utente"])." ".$prenota,"schedina_ordine",$h,false);
  607. if($row["note_ordini"]<>""){
  608. $h2 .= rg_toggable("Note Ordine","note_ordine",$row["note_ordini"],true);
  609. }
  610. return $h2;
  611. }
  612. function schedona_ordine($id_ordine,$id_user=null){
  613. global $db;
  614. global $RG_addr;
  615. $euro = "&#8364";
  616. $id_gas= id_gas_user($id_user);
  617. $io_chi_sono = fullname_from_id($id_user);
  618. $gas_name = gas_nome($id_gas);
  619. $gas_ordine_id = id_gas_user(id_referente_ordine_globale($id_ordine));
  620. $gas_name_generale = gas_nome($gas_ordine_id);
  621. //ANAGRAFICHE
  622. $ordine_nome = descrizione_ordine_from_id_ordine($id_ordine);
  623. $id_listino = listino_ordine_from_id_ordine($id_ordine);
  624. $listino = listino_nome($id_listino);
  625. $id_ditta = ditta_id_from_listino($id_listino);
  626. $ditta = ditta_nome_from_listino($id_listino);
  627. $mail_ditta = ditta_mail_from_listino($id_listino);
  628. $tipologia = tipologia_nome_from_listino($id_listino);
  629. $data_apertura = conv_datetime_from_db(ordini_field_value($id_ordine,"data_apertura"));
  630. $data_chiusura = conv_datetime_from_db(ordini_field_value($id_ordine,"data_chiusura"));
  631. $data_merce = conv_datetime_from_db(ordini_field_value($id_ordine,"data_merce"));
  632. if($data_merce=="00/00/0000 00:00"){$data_merce="Non definita";}
  633. $note_ordine = ordini_field_value($id_ordine,"note_ordini");
  634. //OPINIONI
  635. $conteggio_opinioni = conteggio_opinione_ordine($id_ordine);
  636. if($conteggio_opinioni>0){
  637. $media_opinioni = _nf(media_opinione_ordine($id_ordine));
  638. $sezione_opinioni = "<tr class=\"scheda\">
  639. <th $col_1>Valutazione utenti</th>
  640. <td $col_2>$conteggio_opinioni opinioni, media <strong>$media_opinioni</strong> / 5,00</td>
  641. </tr>";
  642. }else{
  643. $sezione_opinioni = "";
  644. }
  645. //ARTICOLI
  646. $articoli_ord = n_articoli_ordinati_da_id_ordine($id_ordine);
  647. $articoli_arr = n_articoli_arrivati_da_id_ordine($id_ordine);
  648. $scatole_intere_arr = q_scatole_intere_ordine_arr($id_ordine);
  649. $scatole_intere_ord = q_scatole_intere_ordine($id_ordine);
  650. $avanzo_articoli_ord = q_articoli_avanzo_ordine($id_ordine);
  651. $avanzo_articoli_arr = q_articoli_avanzo_ordine_arr($id_ordine);
  652. // RUOLO
  653. $user_level = "Utente Semplice;<br> ";
  654. if (id_referente_ordine_proprio_gas($id_ordine,id_gas_user($id_user))==$id_user){
  655. $user_level .= "Referente Proprio GAS;<br> ";
  656. }
  657. if (id_referente_ordine_globale($id_ordine)==$id_user){
  658. $user_level .= "Referente ORDINE; ";
  659. }
  660. $id_referente_ordine = id_referente_ordine_globale($id_ordine);
  661. $id_referente_proprio_gas = id_referente_ordine_proprio_gas($id_ordine,$id_gas);
  662. $referente_generale = fullname_from_id($id_referente_ordine)." (".telefono_from_id($id_referente_ordine).")";
  663. $referente_gas = fullname_referente_ordine_proprio_gas($id_ordine,id_gas_user($id_user))." (".tel_referente_ordine_proprio_gas($id_ordine,id_gas_user($id_user)).")";
  664. if(check_option_aiuto_ordine($id_ordine,_USER_ID)==0){
  665. $offerta_aiuto="<a class=\"awesome small green\" href=\"".$RG_addr["aiutanti_offerta_form"]."?id_ordine=$id_ordine\">Offri il tuo aiuto !!</a>";
  666. }else{
  667. $offerta_aiuto="";
  668. }
  669. $lista_gestori_extra = crea_minilista_referente_extra($id_ordine);
  670. //IL REFERENTE NON PUO' AIUTARE SE STESSO
  671. if($id_user==$id_referente_ordine){
  672. $offerta_aiuto="";
  673. }
  674. $aiutanti = crea_lista_aiuti_ordine_attivi($id_ordine);
  675. //ORDINE IN PRENOTAZIONE
  676. if(read_option_prenotazione_ordine($id_ordine,_USER_ID)=="SI"){
  677. $prenota = " <span style=\"color:red;font-weight:bold\">(ORDINE in PRENOTAZIONE)</span> ";
  678. }else{
  679. $prenota = "";
  680. }
  681. //PRENOTAZIONE e VALORE ORDINE
  682. $valore_totale_ordine = _nf(valore_totale_ordine_qarr($id_ordine));
  683. $parte_prenotata = _nf(ordine_valore_parte_prenotata($id_ordine));
  684. $parte_confermata = _nf(ordine_valore_parte_confermata($id_ordine));
  685. // GOOGLE CALENDAR
  686. $google_cal ='<a href="http://www.google.com/calendar/event?action=TEMPLATE&text;='.$ordine_nome.'&dates;=20060415T180000Z/20060415T190000Z&location;=&details;=Try our Saturday brunch special:<br><br>French toast with fresh fruit<br><br>Yum!&trp;=true&sprop;=website:http://www.javacafebrunches.com&sprop;=name:Jave Cafe"><img src="//www.google.com/calendar/images/ext/gc_button1.gif"></a>';
  687. //STATO
  688. $stato_attuale = stato_from_id_ord($id_ordine);
  689. if($stato_attuale==1){
  690. $stato = "Programmato";
  691. }
  692. if($stato_attuale==2){
  693. if(ordini_field_value($id_ordine,"solo_cassati")=="SI"){
  694. $stato = "Aperto a chi ha la cassa.";
  695. }else{
  696. $stato = "Aperto a tutti.";
  697. }
  698. }
  699. if($stato_attuale==3){
  700. $stato = "Chiuso - ";
  701. if(is_printable_from_id_ord($id_ordine)){
  702. $stato .="<b>STAMPABILE</b>";
  703. }else{
  704. $stato .="<b>DA CONFERMARE</b>";
  705. }
  706. }
  707. //BACINO UTENZE
  708. $bacino_tot = ordine_bacino_utenti($id_ordine);
  709. $bacino_part = ordine_bacino_utenti_part($id_ordine);
  710. $bacino_non_part = $bacino_tot-$bacino_part;
  711. $bacino_percentuale = _nf((($bacino_part/$bacino_tot)*100))."%";
  712. $bacino_tot_mio_gas = gas_n_user($id_gas);
  713. $bacino_part_mio_gas = ordine_bacino_utenti_part_gas($id_ordine,$id_gas);
  714. $bacino_non_part_mio_gas = $bacino_tot_mio_gas-$bacino_part_mio_gas;
  715. $bacino_percentuale_mio_gas = number_format((($bacino_part_mio_gas/$bacino_tot_mio_gas)*100),1,",","")."%";
  716. $gas_coinvolti=ordine_gas_coinvolti($id_ordine);
  717. //SPESA ATTUALE
  718. $valore_globale_attuale_netto_qarr = valore_totale_ordine_qarr($id_ordine);
  719. $costo_globale_trasporto = valore_trasporto($id_ordine,100);
  720. $costo_globale_gestione = valore_gestione($id_ordine,100);
  721. $maggiorazione_percentuale_mio_gas = valore_percentuale_maggiorazione_mio_gas($id_ordine,$id_gas);
  722. $costo_globale_mio_gas = valore_assoluto_costo_mio_gas($id_ordine,$id_gas);
  723. if($maggiorazione_percentuale_mio_gas>0){
  724. $motivazione_maggiorazione = "(".testo_maggiorazione_mio_gas($id_ordine,$id_gas).")";
  725. }
  726. if($valore_globale_attuale_netto_qarr>0){
  727. $valore_personale_attuale_netto_qarr = valore_totale_mio_ordine($id_ordine,$id_user);
  728. $valore_gas_attuale_netto_qarr = valore_totale_mio_gas($id_ordine,$id_gas);
  729. if($valore_gas_attuale_netto_qarr>0){
  730. $percentuale_mio_ordine_gas = ($valore_personale_attuale_netto_qarr / $valore_gas_attuale_netto_qarr) *100;
  731. }else{
  732. $percentuale_mio_ordine_gas = 0;
  733. }
  734. $percentuale_mio_ordine = ($valore_personale_attuale_netto_qarr / $valore_globale_attuale_netto_qarr) *100;
  735. $costo_trasporto = ($costo_globale_trasporto / 100) * $percentuale_mio_ordine;
  736. $costo_gestione = ($costo_globale_gestione / 100) * $percentuale_mio_ordine;
  737. $costo_personale_mio_gas = ($costo_globale_mio_gas /100)*$percentuale_mio_ordine_gas;
  738. $valore_maggiorazione_mio_gas = ($valore_personale_attuale_netto_qarr / 100) * $maggiorazione_percentuale_mio_gas;
  739. $totale_ordine = $valore_personale_attuale_netto_qarr +
  740. $costo_trasporto +
  741. $costo_gestione +
  742. $costo_personale_mio_gas +
  743. $valore_maggiorazione_mio_gas ;
  744. }else{
  745. $valore_personale_attuale_netto_qarr = 0;
  746. $costo_trasporto= 0;
  747. $costo_gestione= 0;
  748. $costo_personale_mio_gas =0;
  749. $valore_maggiorazione_mio_gas =0;
  750. }
  751. $totale_ordine = $valore_personale_attuale_netto_qarr +
  752. $costo_trasporto +
  753. $costo_gestione +
  754. $costo_personale_mio_gas +
  755. $valore_maggiorazione_mio_gas ;
  756. //FORMATTAZIONE
  757. $valore_personale_attuale_netto_qarr = number_format((float)round($valore_personale_attuale_netto_qarr,2),2,",","");
  758. $costo_trasporto = number_format((float)round($costo_trasporto,2),2,",","");
  759. $costo_gestione = number_format((float)round($costo_gestione,2),2,",","");
  760. $costo_personale_mio_gas = number_format((float)round($costo_personale_mio_gas,2),2,",","");
  761. $valore_maggiorazione_mio_gas = number_format((float)round($valore_maggiorazione_mio_gas,2),2,",","");
  762. $totale_ordine = number_format((float)round($totale_ordine,2),2,",","");
  763. $maggiorazione_percentuale_mio_gas = number_format((float)round($maggiorazione_percentuale_mio_gas,2),2,",","");
  764. $costo_globale_mio_gas = number_format((float)round($costo_globale_mio_gas,2),2,",","");
  765. $costo_globale_trasporto = number_format((float)round($costo_globale_trasporto,2),2,",","");
  766. $costo_globale_gestione = number_format((float)round($costo_globale_gestione,2),2,",","");
  767. $articoli_ord = (float)round($articoli_ord,2);
  768. $articoli_arr = (float)round($articoli_arr,2);
  769. //GEOCODING
  770. //Ditta
  771. $ditta_gc_lat = db_val_q("id_ditte",$id_ditta,"ditte_gc_lat","retegas_ditte");
  772. $ditta_gc_lng = db_val_q("id_ditte",$id_ditta,"ditte_gc_lng","retegas_ditte");
  773. //echo "$ditta_gc_lat , $ditta_gc_lng<br>";
  774. if($ditta_gc_lat==0){
  775. $gc .= "Indirizzo ditta non valido<br>";
  776. $e_gc++;
  777. }
  778. //Mio Gas
  779. $gas_gc_lat = db_val_q("id_gas",$id_gas,"gas_gc_lat","retegas_gas");
  780. $gas_gc_lng = db_val_q("id_gas",$id_gas,"gas_gc_lng","retegas_gas");
  781. //echo "$gas_gc_lat , $gas_gc_lng<br>";
  782. if($gas_gc_lat==0){
  783. $gc .= "Indirizzo mio gas non valido<br>";
  784. $e_gc++;
  785. }
  786. //Gas ordinante
  787. if($gas_ordine_id<>$id_gas){
  788. $gas_ord_gc_lat = db_val_q("id_gas",$gas_ordine_id,"gas_gc_lat","retegas_gas");
  789. $gas_ord_gc_lng = db_val_q("id_gas",$gas_ordine_id,"gas_gc_lng","retegas_gas");
  790. //echo "$gas_gc_lat , $gas_gc_lng<br>";
  791. if($gas_ord_gc_lat==0){
  792. $gc .= "Indirizzo gas ordinante non valido<br>";
  793. $e_gc++;
  794. }
  795. }
  796. //user
  797. $user_gc_lat = db_val_q("userid",_USER_ID,"user_gc_lat","maaking_users");
  798. $user_gc_lng = db_val_q("userid",_USER_ID,"user_gc_lng","maaking_users");
  799. if($user_gc_lat==0){
  800. $gc .= "Indirizzo Utente non valido<br>";
  801. $e_gc++;
  802. }
  803. if($e_gc==0){
  804. //CHIAMA GOOGLE MAPS E SI FA PASSARE LA DISTANZA.
  805. $sResponse=curl_request('http://maps.googleapis.com/maps/api/distancematrix/json',
  806. "origins=$ditta_gc_lat,$ditta_gc_lng&destinations=$gas_gc_lat,$gas_gc_lng&mode=driving&sensor=false");
  807. $oJSON=json_decode($sResponse);
  808. if ($oJSON->status=='OK')
  809. $dist_ditta_gas=(float)preg_replace('/[^\d\.]/','',$oJSON->rows[0]->elements[0]->distance->text);
  810. else
  811. $dist_ditta_gas=0;
  812. $dist_ditta_gas = round(floatval($dist_ditta_gas),2);
  813. $dist_gas_user = round(getDistanceBetweenPointsNew($user_gc_lat, $user_gc_lng, $gas_gc_lat, $gas_gc_lng),2);
  814. if($gas_ord_gc_lat>0){
  815. $dist_gas_ord = round(getDistanceBetweenPointsNew($gas_gc_lat, $gas_gc_lng, $gas_ord_gc_lat, $gas_ord_gc_lng),2);
  816. $dist_gas_ord = $dist_gas_ord." Km + ";
  817. }
  818. $dist_tot = round($dist_ditta_gas + $dist_gas_user + $dist_gas_ord,2);
  819. $gc = $dist_ditta_gas." Km + ". $dist_gas_ord.$dist_gas_user." Km = <strong>".$dist_tot."</strong> Km Tot.";
  820. }
  821. //MIE NOTE ORDINE
  822. if(valore_arrivato_netto_ordine_user($id_ordine,_USER_ID)>0){
  823. $classe_editable = "edit";
  824. $mie_note_ordine = read_option_note(_USER_ID,"ORD_NOTE_".$id_ordine);
  825. if($mie_note_ordine==""){
  826. $mie_note_ordine = "Clicca per scrivere";
  827. }
  828. $j_editable = "<tr class=\"titolino\">
  829. <td colspan=2 title=\"Le note personali potranno essere lette anche dal gestore dell'ordine e dal proprio referente GAS.<br>
  830. Per inserire una nota Cliccare sul Post-it. Le note vengono salvate assieme al proprio ordine.\">
  831. NOTE PERSONALI
  832. </td>
  833. </tr>
  834. <tr>
  835. <td colspan=2>
  836. <div id=\"postit\"
  837. class=\"edit_area\"
  838. style=\"display:block;
  839. height : 10em;
  840. width : 10em;
  841. background:#fefabc;
  842. padding:15px;
  843. font-family: 'Gloria Hallelujah', cursive;
  844. font-size:15px;
  845. color: #000;
  846. width:200px;
  847. -moz-transform: rotate(4deg);
  848. -webkit-transform: rotate(4deg);
  849. -o-transform: rotate(4deg);
  850. -ms-transform: rotate(4deg);
  851. transform: rotate(4deg);
  852. box-shadow: 0px 4px 6px #333;
  853. -moz-box-shadow: 0px 4px 6px #333;
  854. -webkit-box-shadow: 0px 4px 6px #333;
  855. \">$mie_note_ordine</div>
  856. </td>
  857. </tr>";
  858. }
  859. //Distribuzione
  860. $luogo_distribuzione = luogo_distribuzione_mio_gas($id_ordine,$id_gas);
  861. if($luogo_distribuzione==""){$luogo_distribuzione="Non definito...";}
  862. $data_distribuzione_start = conv_datetime_from_db(data_distribuzione_start_mio_gas($id_ordine,$id_gas));
  863. if($data_distribuzione_start=="// 00:00" | $data_distribuzione_start=="00/00/0000 00:00"){$data_distribuzione_start="Non definita...";}
  864. $data_distribuzione_end = conv_datetime_from_db(data_distribuzione_end_mio_gas($id_ordine,$id_gas));
  865. if($data_distribuzione_end=="// 00:00" | $data_distribuzione_end=="00/00/0000 00:00"){$data_distribuzione_end="Non definita...";}
  866. $testo_distribuzione = testo_distribuzione_mio_gas($id_ordine,$id_gas);
  867. if($testo_distribuzione==""){$testo_distribuzione="Nessuna nota..";}
  868. // COSTRUZIONE TABELLA -----------------------------------------------------------------------
  869. $h_table .= "<div class=\"rg_widget rg_widget_helper\">
  870. <h3>Scheda Ordine</h3>
  871. <table>
  872. <tr>
  873. <td width=\"39%\" style=\"vertical-align:top\">
  874. <table>
  875. <tr class=\"titolino\">
  876. <td colspan=2>
  877. Anagrafiche
  878. </td>
  879. </tr>
  880. <tr class=\"scheda\">
  881. <th $col_1>Ordine n.<b>$id_ordine</b></th>
  882. <td $col_2>$ordine_nome</td>
  883. </tr>
  884. <tr class=\"scheda\">
  885. <th $col_1>Fornitore</th>
  886. <td $col_2><a href=\"".$RG_addr["form_ditta"]."?id_ditta=$id_ditta\">$ditta</a></td>
  887. </tr>
  888. <tr class=\"scheda\">
  889. <th $col_1>Listino</th>
  890. <td $col_2><a href=\"".$RG_addr["listini_scheda"]."?id_listino=$id_listino\">$listino</a></td>
  891. </tr>
  892. <tr class=\"scheda\">
  893. <th $col_1>Merce trattata</th>
  894. <td $col_2>$tipologia</td>
  895. </tr>
  896. <tr class=\"scheda\">
  897. <th $col_1>Stato:</th>
  898. <td $col_2>$stato<br>$prenota</td>
  899. </tr>
  900. <tr class=\"scheda\">
  901. <th $col_1>Data apertura</th>
  902. <td $col_2>$data_apertura</td>
  903. </tr>
  904. <tr class=\"scheda\">
  905. <th $col_1>Data Chiusura</th>
  906. <td $col_2>$data_chiusura</td>
  907. </tr>
  908. <tr class=\"scheda\">
  909. <th $col_1>Arrivo merce</th>
  910. <td $col_2>$data_merce</td>
  911. </tr>
  912. <tr class=\"scheda\">
  913. <th $col_1>Km percorsi dalla merce</th>
  914. <td $col_2>$gc</td>
  915. </tr>
  916. $sezione_opinioni
  917. <tr class=\"titolino\">
  918. <td colspan=2>
  919. Situazione ordine
  920. </td>
  921. </tr>
  922. <tr class=\"soldi\">
  923. <th $col_1>Valore totale : </th>
  924. <td $col_2>$valore_totale_ordine Eu.</td>
  925. </tr>
  926. <tr class=\"soldi\">
  927. <th $col_1>Parte Prenotata / Confermata </th>
  928. <td $col_2>$parte_prenotata Eu. / $parte_confermata Eu.</td>
  929. </tr>
  930. <tr class=\"scheda\">
  931. <th $col_1>Articoli ORDINATI / ARRIVATI : </th>
  932. <td $col_2>$articoli_ord / $articoli_arr</td>
  933. </tr>
  934. <tr class=\"scheda\">
  935. <th $col_1>Scatole ORDINATE/ ARRIVATE</th>
  936. <td $col_2>$scatole_intere_ord / $scatole_intere_arr</td>
  937. </tr>
  938. <tr class=\"scheda\">
  939. <th $col_1>Avanzo articoli ORD. / ARR.</th>
  940. <td $col_2>$avanzo_articoli_ord / $avanzo_articoli_arr</td>
  941. </tr>
  942. <tr class=\"titolino\">
  943. <td colspan=2>
  944. Bacino utenze
  945. </td>
  946. </tr>
  947. <tr class=\"scheda\">
  948. <th $col_1>Gas coinvolti:</th>
  949. <td $col_2><b>$gas_coinvolti</b> ($bacino_tot Utenti)</div>
  950. </td>
  951. </tr>
  952. <tr class=\"scheda\">
  953. <th $col_1>Part. MIO GAS / Tutti i GAS</th>
  954. <td $col_2>$bacino_part_mio_gas / $bacino_part</td>
  955. </tr>
  956. </table>
  957. </td>
  958. <td width=\"39%\" style=\"vertical-align:top\">
  959. <table>
  960. <tr class=\"titolino\">
  961. <td colspan=2>
  962. Referenti
  963. </td>
  964. </tr>
  965. <tr class=\"scheda\">
  966. <th $col_1>Condizione utente corrente ($io_chi_sono)</th>
  967. <td $col_2>$user_level</td>
  968. </tr>
  969. <tr class=\"scheda\">
  970. <th $col_1>Referente generale ($gas_name_generale)</th>
  971. <td $col_2><a href=\"".$RG_addr["pag_users_form"]."?id_utente=".mimmo_encode($id_referente_ordine)."\">$referente_generale</a></td>
  972. </tr>
  973. <tr class=\"scheda\">
  974. <th $col_1>Referenti extra:</th>
  975. <td $col_2 style=\"font-size:.8em\">$lista_gestori_extra</td>
  976. </tr>
  977. <tr class=\"scheda\">
  978. <th $col_1>Aiutanti: $offerta_aiuto</th>
  979. <td $col_2>$aiutanti</td>
  980. </tr>
  981. <tr class=\"titolino\">
  982. <td colspan=2>
  983. $gas_name: Informazioni utili:
  984. </td>
  985. </tr>
  986. <tr class=\"scheda\">
  987. <th $col_1>Referente del tuo gas:</th>
  988. <td $col_2><a href=\"".$RG_addr["pag_users_form"]."?id_utente=".mimmo_encode($id_referente_proprio_gas)."\">$referente_gas</a></td>
  989. </tr>
  990. <tr class=\"scheda\">
  991. <th $col_1>Distribuzione merce</th>
  992. <td $col_2>dal <b>$data_distribuzione_start</b> al <b>$data_distribuzione_end</b></td>
  993. </tr>
  994. <tr class=\"scheda\">
  995. <th $col_1>Luogo distribuzione:</th>
  996. <td $col_2>$luogo_distribuzione</td>
  997. </tr>
  998. <tr class=\"scheda\">
  999. <th $col_1>Note distribuzione</th>
  1000. <td $col_2>$testo_distribuzione</td>
  1001. </tr>
  1002. <tr class=\"titolino\">
  1003. <td colspan=2>
  1004. VALORE DELLA MIA SPESA
  1005. </td>
  1006. </tr>
  1007. <tr class=\"soldi\">
  1008. <th $col_1>Valore netto attuale</th>
  1009. <td $col_2>$valore_personale_attuale_netto_qarr</td>
  1010. </tr>
  1011. <tr class=\"soldi\">
  1012. <th $col_1>Costo trasporto <b class=\"small_link\">($costo_globale_trasporto $euro)</b></th>
  1013. <td $col_2>$costo_trasporto</td>
  1014. </tr>
  1015. <tr class=\"soldi\">
  1016. <th $col_1>Costo Gestione <b class=\"small_link\">($costo_globale_gestione $euro)</b></th>
  1017. <td $col_2>$costo_gestione</td>
  1018. </tr>
  1019. <tr class=\"soldi\">
  1020. <th $col_1>Costo mio gas <b class=\"small_link\">($costo_globale_mio_gas $euro)</b></th>
  1021. <td $col_2>".$costo_personale_mio_gas."</td>
  1022. </tr>
  1023. <tr class=\"soldi\">
  1024. <th $col_1>Maggiorazione mio gas del ".$maggiorazione_percentuale_mio_gas."% ".$motivazione_maggiorazione."</th>
  1025. <td $col_2>$valore_maggiorazione_mio_gas</td>
  1026. </tr>
  1027. <tr class=\"soldi grosso\">
  1028. <th $col_1>TOTALE ORDINE</th>
  1029. <td $col_2>$totale_ordine</td>
  1030. </tr>
  1031. $j_editable
  1032. </table>
  1033. </td>
  1034. </tr>
  1035. </table>
  1036. </div>
  1037. $dialogo_aiuto";
  1038. if(trim($note_ordine)<>""){
  1039. $h_table .=" <div class=\"rg_widget rg_widget_helper\">
  1040. <strong>Note ordine</strong>:<div style=\"clear:both\"></div>
  1041. <div id=\"note_content\" >
  1042. $note_ordine
  1043. </div>
  1044. </div>
  1045. <br>
  1046. ";
  1047. }
  1048. // END TABELLA ----------------------------------------------------------------------------
  1049. return $h_table;
  1050. }
  1051. function contabilita_ordine($id_ordine,$id_user=null){
  1052. global $db;
  1053. global $RG_addr;
  1054. $euro = "&#8364";
  1055. $id_gas= id_gas_user($id_user);
  1056. $io_chi_sono = fullname_from_id($id_user);
  1057. $gas_name = gas_nome($id_gas);
  1058. $gas_name_generale = gas_nome(id_gas_user(id_referente_ordine_globale($id_ordine)));
  1059. //ANAGRAFICHE
  1060. $ordine_nome = descrizione_ordine_from_id_ordine($id_ordine);
  1061. $id_listino = listino_ordine_from_id_ordine($id_ordine);
  1062. $listino = listino_nome($id_listino);
  1063. $id_ditta = ditta_id_from_listino($id_listino);
  1064. $ditta = ditta_nome_from_listino($id_listino);
  1065. $mail_ditta = ditta_mail_from_listino($id_listino);
  1066. $tipologia = tipologia_nome_from_listino($id_listino);
  1067. $data_apertura = conv_datetime_from_db(ordini_field_value($id_ordine,"data_apertura"));
  1068. $data_chiusura = conv_datetime_from_db(ordini_field_value($id_ordine,"data_chiusura"));
  1069. $note_ordine = ordini_field_value($id_ordine,"note_ordini");
  1070. //ARTICOLI
  1071. $articoli_ord = n_articoli_ordinati_da_id_ordine($id_ordine);
  1072. $articoli_arr = n_articoli_arrivati_da_id_ordine($id_ordine);
  1073. $scatole_intere_arr = q_scatole_intere_ordine_arr($id_ordine);
  1074. $scatole_intere_ord = q_scatole_intere_ordine($id_ordine);
  1075. $avanzo_articoli_ord = q_articoli_avanzo_ordine($id_ordine);
  1076. $avanzo_articoli_arr = q_articoli_avanzo_ordine_arr($id_ordine);
  1077. // RUOLO
  1078. $user_level = "Utente Semplice;<br> ";
  1079. if (id_referente_ordine_proprio_gas($id_ordine,id_gas_user($id_user))==$id_user){
  1080. $user_level .= "Referente Proprio GAS;<br> ";
  1081. }
  1082. if (id_referente_ordine_globale($id_ordine)==$id_user){
  1083. $user_level .= "Referente ORDINE; ";
  1084. }
  1085. $id_referente_ordine = id_referente_ordine_globale($id_ordine);
  1086. $referente_generale = fullname_from_id($id_referente_ordine)." (".telefono_from_id($id_referente_ordine).")";
  1087. $referente_gas = fullname_referente_ordine_proprio_gas($id_ordine,id_gas_user($id_user))." (".tel_referente_ordine_proprio_gas($id_ordine,id_gas_user($id_user)).")";
  1088. //STATO
  1089. $stato_attuale = stato_from_id_ord($id_ordine);
  1090. if($stato_attuale==1){
  1091. $stato = "Programmato";
  1092. }
  1093. if($stato_attuale==2){
  1094. $stato = "Aperto";
  1095. }
  1096. if($stato_attuale==3){
  1097. $stato = "Chiuso - ";
  1098. if(is_printable_from_id_ord($id_ordine)){
  1099. $stato .="<b>STAMPABILE</b>";
  1100. }else{
  1101. $stato .="<b>DA CONFERMARE</b>";
  1102. }
  1103. }
  1104. //BACINO UTENZE
  1105. $bacino_tot = ordine_bacino_utenti($id_ordine);
  1106. $bacino_part = ordine_bacino_utenti_part($id_ordine);
  1107. $bacino_non_part = $bacino_tot-$bacino_part;
  1108. $bacino_percentuale = number_format((($bacino_part/$bacino_tot)*100),1,",","")."%";
  1109. $bacino_tot_mio_gas = gas_n_user($id_gas);
  1110. $bacino_part_mio_gas = ordine_bacino_utenti_part_gas($id_ordine,$id_gas);
  1111. $bacino_non_part_mio_gas = $bacino_tot_mio_gas-$bacino_part_mio_gas;
  1112. $bacino_percentuale_mio_gas = number_format((($bacino_part_mio_gas/$bacino_tot_mio_gas)*100),1,",","")."%";
  1113. $gas_coinvolti=ordine_gas_coinvolti($id_ordine);
  1114. //SPESA ATTUALE
  1115. $valore_globale_attuale_netto_qarr = valore_totale_ordine_qarr($id_ordine);
  1116. $valore_miogas_attuale_netto_qarr = valore_totale_mio_gas($id_ordine,$id_gas);
  1117. $costo_globale_trasporto = valore_trasporto($id_ordine,100);
  1118. $costo_globale_gestione = valore_gestione($id_ordine,100);
  1119. $maggiorazione_percentuale_mio_gas = valore_percentuale_maggiorazione_mio_gas($id_ordine,$id_gas);
  1120. $costo_globale_mio_gas = valore_assoluto_costo_mio_gas($id_ordine,$id_gas);
  1121. $costo_maggiorazione_mio_gas = ($valore_miogas_attuale_netto_qarr /100) * $maggiorazione_percentuale_mio_gas;
  1122. if($maggiorazione_percentuale_mio_gas>0){
  1123. $motivazione_maggiorazione = "(".testo_maggiorazione_mio_gas($id_ordine,$id_gas).")";
  1124. }
  1125. if($valore_globale_attuale_netto_qarr>0){
  1126. $valore_personale_attuale_netto_qarr = valore_totale_mio_ordine($id_ordine,$id_user);
  1127. $valore_gas_attuale_netto_qarr = valore_totale_mio_gas($id_ordine,$id_gas);
  1128. if($valore_gas_attuale_netto_qarr>0){
  1129. $percentuale_mio_ordine_gas = ($valore_personale_attuale_netto_qarr / $valore_gas_attuale_netto_qarr) *100;
  1130. }else{
  1131. $percentuale_mio_ordine_gas = 0;
  1132. }
  1133. $percentuale_mio_ordine = ($valore_personale_attuale_netto_qarr / $valore_globale_attuale_netto_qarr) *100;
  1134. $costo_trasporto = ($costo_globale_trasporto / 100) * $percentuale_mio_ordine;
  1135. $costo_gestione = ($costo_globale_gestione / 100) * $percentuale_mio_ordine;
  1136. $percentuale_mio_gas = ($valore_miogas_attuale_netto_qarr / $valore_globale_attuale_netto_qarr) *100;
  1137. $costo_trasporto_mio_gas = ($costo_globale_trasporto / 100) * $percentuale_mio_gas;
  1138. $costo_gestione_mio_gas = ($costo_globale_gestione / 100) * $percentuale_mio_gas;
  1139. $costo_personale_mio_gas = ($costo_globale_mio_gas /100)*$percentuale_mio_ordine_gas;
  1140. $valore_maggiorazione_mio_gas = ($valore_personale_attuale_netto_qarr / 100) * $maggiorazione_percentuale_mio_gas;
  1141. $totale_ordine = $valore_personale_attuale_netto_qarr +
  1142. $costo_trasporto +
  1143. $costo_gestione +
  1144. $costo_personale_mio_gas +
  1145. $valore_maggiorazione_mio_gas ;
  1146. }else{
  1147. $valore_personale_attuale_netto_qarr = 0;
  1148. $costo_trasporto= 0;
  1149. $costo_gestione= 0;
  1150. $costo_personale_mio_gas =0;
  1151. $valore_maggiorazione_mio_gas =0;
  1152. }
  1153. $totale_ordine = $valore_personale_attuale_netto_qarr +
  1154. $costo_trasporto +
  1155. $costo_gestione +
  1156. $costo_personale_mio_gas +
  1157. $valore_maggiorazione_mio_gas ;
  1158. $totale_ordine_gas =$valore_miogas_attuale_netto_qarr +
  1159. $costo_trasporto_mio_gas +
  1160. $costo_gestione_mio_gas +
  1161. $costo_globale_mio_gas +
  1162. $costo_maggiorazione_mio_gas;
  1163. $totale_ordine_pubblico = $valore_globale_attuale_netto_qarr +
  1164. $costo_globale_trasporto +
  1165. $costo_globale_gestione;
  1166. //FORMATTAZIONE
  1167. $valore_personale_attuale_netto_qarr = number_format((float)round($valore_personale_attuale_netto_qarr,2),2,",","");
  1168. $costo_trasporto = number_format((float)round($costo_trasporto,2),2,",","");
  1169. $costo_gestione = number_format((float)round($costo_gestione,2),2,",","");
  1170. $costo_personale_mio_gas = number_format((float)round($costo_personale_mio_gas,2),2,",","");
  1171. $valore_maggiorazione_mio_gas = number_format((float)round($valore_maggiorazione_mio_gas,2),2,",","");
  1172. $totale_ordine = number_format((float)round($totale_ordine,2),2,",","");
  1173. $totale_ordine_gas = number_format((float)round($totale_ordine_gas,2),2,",","");
  1174. $totale_ordine_pubblico = number_format((float)round($totale_ordine_pubblico,2),2,",","");
  1175. $maggiorazione_percentuale_mio_gas = number_format((float)round($maggiorazione_percentuale_mio_gas,2),2,",","");
  1176. $costo_globale_mio_gas = number_format((float)round($costo_globale_mio_gas,2),2,",","");
  1177. $costo_globale_trasporto = number_format((float)round($costo_globale_trasporto,2),2,",","");
  1178. $costo_globale_gestione = number_format((float)round($costo_globale_gestione,2),2,",","");
  1179. $articoli_ord = (float)round($articoli_ord,2);
  1180. $articoli_arr = (float)round($articoli_arr,2);
  1181. $valore_globale_attuale_netto_qarr = number_format((float)round($valore_globale_attuale_netto_qarr,2),2,",","");
  1182. $valore_miogas_attuale_netto_qarr = number_format((float)round($valore_miogas_attuale_netto_qarr,2),2,",","");
  1183. $percentuale_mio_ordine_gas = number_format((float)round($percentuale_mio_ordine_gas,2),2,",","");
  1184. $percentuale_mio_ordine = number_format((float)round($percentuale_mio_ordine,2),2,",","");
  1185. $percentuale_mio_gas = number_format((float)round($percentuale_mio_gas,2),2,",","");
  1186. $costo_trasporto_mio_gas = number_format((float)round($costo_trasporto_mio_gas,2),2,",","");
  1187. $costo_gestione_mio_gas = number_format((float)round($costo_gestione_mio_gas,2),2,",","");
  1188. $costo_maggiorazione_mio_gas = number_format((float)round($costo_maggiorazione_mio_gas,2),2,",","");
  1189. // COSTRUZIONE TABELLA -----------------------------------------------------------------------
  1190. //formattazione colonna percentale
  1191. //$col_3 = " style=\"border-bottom:0; text-align:center;\" ";
  1192. $h_table .= " <div class=\"rg_widget rg_widget_helper\">
  1193. <table>
  1194. <tr>
  1195. <td width=\"100%\">
  1196. <table>
  1197. <tr class=\"titolino\">
  1198. <td colspan=7>Valore Netto</td>
  1199. </tr>
  1200. <tr class=\"scheda\">
  1201. <th $col_1></th>
  1202. <th colspan=2 $col_1>Mia Spesa</th>
  1203. <th colspan=2 $col_1>Mio Gas</th>
  1204. <th colspan=2 $col_1>Ordine</th>
  1205. </tr>
  1206. <tr class=\"scheda soldi\">
  1207. <th $col_1>Articoli Ordinati</th>
  1208. <td $col_3>$percentuale_mio_ordine %</td>
  1209. <td $col_2>$valore_personale_attuale_netto_qarr $euro</td>
  1210. <td $col_3>$percentuale_mio_gas %</td>
  1211. <td $col_2>$valore_miogas_attuale_netto_qarr $euro</td>
  1212. <td $col_3>100,00 %</td>
  1213. <td $col_2><b>$valore_globale_attuale_netto_qarr $euro</b></td>
  1214. </tr>
  1215. <tr class=\"titolino\">
  1216. <td colspan=7>Costi Pubblici</td>
  1217. </tr>
  1218. <tr class=\"scheda\">
  1219. <th $col_1></th>
  1220. <th colspan=2 $col_1>Mia Spesa</th>
  1221. <th colspan=2 $col_1>Mio Gas</th>
  1222. <th colspan=2 $col_1>Ordine</th>
  1223. </tr>
  1224. <tr class=\"scheda soldi\">
  1225. <th $col_1>Trasporto</th>
  1226. <td $col_3>$percentuale_mio_ordine %</td>
  1227. <td $col_2>$costo_trasporto $euro</td>
  1228. <td $col_3>$percentuale_mio_gas %</td>
  1229. <td $col_2>$costo_trasporto_mio_gas $euro</td>
  1230. <td $col_3>100,00 %</td>
  1231. <td $col_2><b>$costo_globale_trasporto $euro</b></td>
  1232. </tr>
  1233. <tr class=\"scheda soldi\">
  1234. <th $col_1>Gestione</th>
  1235. <td $col_3>$percentuale_mio_ordine %</td>
  1236. <td $col_2>$costo_gestione $euro</td>
  1237. <td $col_3>$percentuale_mio_gas %</td>
  1238. <td $col_2>$costo_gestione_mio_gas $euro</td>
  1239. <td $col_3>100,00 %</td>
  1240. <td $col_2><b>$costo_globale_gestione $euro</b></td>
  1241. </tr>
  1242. <tr class=\"titolino\">
  1243. <td colspan=7>Costi Privati</td>
  1244. </tr>
  1245. <tr class=\"scheda\">
  1246. <th $col_1></th>
  1247. <th colspan=2 $col_1>Mia Spesa</th>
  1248. <th colspan=2 $col_1>Mio Gas</th>
  1249. <th colspan=2 $col_1>Ordine</th>
  1250. </tr>
  1251. <tr class=\"scheda soldi\">
  1252. <th $col_1>Costo Proprio GAS</th>
  1253. <td $col_3>$percentuale_mio_ordine_gas %</td>
  1254. <td $col_2>$costo_personale_mio_gas $euro</td>
  1255. <td $col_3>100,00 %</td>
  1256. <td $col_2><b>$costo_globale_mio_gas $euro</b></td>
  1257. <td $col_3></td>
  1258. <td $col_2></td>
  1259. </tr>
  1260. <tr class=\"scheda soldi\">
  1261. <th $col_1>Maggiorazione Proprio GAS</th>
  1262. <td $col_3>$maggiorazione_percentuale_mio_gas %</td>
  1263. <td $col_2>$valore_maggiorazione_mio_gas $euro</td>
  1264. <td $col_3><b>$maggiorazione_percentuale_mio_gas %</b></td>
  1265. <td $col_2>$costo_maggiorazione_mio_gas $euro</td>
  1266. <td $col_3></td>
  1267. <td $col_2></td>
  1268. </tr>
  1269. <tr class=\"titolino\">
  1270. <td colspan=7>Totali</td>
  1271. </tr>
  1272. <tr class=\"scheda\">
  1273. <th $col_1></th>
  1274. <th colspan=2 $col_1>Mia Spesa</th>
  1275. <th colspan=2 $col_1>Mio Gas</th>
  1276. <th colspan=2 $col_1>Ordine</th>
  1277. </tr>
  1278. <tr class=\"scheda soldi\">
  1279. <th $col_1></th>
  1280. <td $col_3></td>
  1281. <td $col_2>$totale_ordine $euro</td>
  1282. <td $col_3></td>
  1283. <td $col_2>$totale_ordine_gas $euro</td>
  1284. <td $col_3></td>
  1285. <td $col_2>$totale_ordine_pubblico $euro</td>
  1286. </tr>
  1287. </table>
  1288. </td>
  1289. </tr>
  1290. </table>";
  1291. // END TABELLA ----------------------------------------------------------------------------
  1292. return $h_table;
  1293. }
  1294. //MODIFICA
  1295. function modifica_quantita_articoli_ordine($id_arti,$ordine,$id_user,$q_min,$id_dett = null){
  1296. global $RG_addr;
  1297. global $db, $v1,$v2,$v3,$v4,$v5;
  1298. global $a_hdr,$a_std,$a_tot,$a_nto,$a_cnt;
  1299. global $stili;
  1300. //echo "id arti = ".$id_arti;
  1301. //echo "ordine = ".$ordine;
  1302. //echo "user = ".$id_user;
  1303. $query ="SELECT
  1304. retegas_amici.id_amici,
  1305. retegas_amici.nome,
  1306. retegas_amici.id_referente
  1307. FROM
  1308. retegas_amici
  1309. WHERE
  1310. retegas_amici.id_referente = '$id_user'
  1311. AND retegas_amici.is_visible = '1'
  1312. AND retegas_amici.status = '1'";
  1313. $result = $db->sql_query($query);
  1314. //$output_html .= "<br />";
  1315. //$output_html .= "Multiplo Minimo : ".$q_min;
  1316. // N RIGA
  1317. if(empty($id_dett)){
  1318. $sql_riga="SELECT
  1319. *
  1320. FROM
  1321. retegas_dettaglio_ordini
  1322. WHERE
  1323. retegas_dettaglio_ordini.id_articoli = '$id_arti' AND
  1324. retegas_dettaglio_ordini.id_ordine = '$ordine' AND
  1325. retegas_dettaglio_ordini.id_utenti = '$id_user';";
  1326. }else{
  1327. $sql_riga="SELECT
  1328. *
  1329. FROM
  1330. retegas_dettaglio_ordini
  1331. WHERE
  1332. retegas_dettaglio_ordini.id_dettaglio_ordini = '$id_dett';";
  1333. }
  1334. $ret_riga = mysql_query($sql_riga);
  1335. $row_riga = mysql_fetch_row($ret_riga);
  1336. // N RIGA
  1337. //$n_riga = n_riga_ordini_dettaglio_distribuzione($ordine,$id_arti,$id_user);
  1338. $n_riga=$row_riga[0];
  1339. //echo "Appena munto n_riga = $n_riga";
  1340. $output_html .= "<table>";
  1341. //HEADER
  1342. unset ($d);
  1343. $i=0;
  1344. $cm= $a_hdr; // HEADER - CLASSE MADRE
  1345. $d[$i][0]="Assegnatario"; $i++;
  1346. $d[$i][0]="Quantita' ordinata"; $i++;
  1347. //$d[$i][0]="Nuova Quantita'"; $i++;
  1348. $output_html .= "<tr class=\"odd\">
  1349. <th>Assegnatario</th>
  1350. <th>Quantità da ordinare</td>
  1351. </tr>
  1352. ";
  1353. // HEADER
  1354. $output_html .="<form method=\"POST\" action=\"ordini_aperti_mod_q.php\">";
  1355. $riga=0;
  1356. // RIGA DEL ME STESSO
  1357. //$c0=$row["id_riga_dettaglio_ordine"];
  1358. $c1="<b>Me stesso</b>";
  1359. //$c3=$row["id_dettaglio_ordini"];
  1360. //$c15=articoli_per_amici($c0,$c2);
  1361. $c_amico = 0;
  1362. $c2=n_articoli_ordini_dettaglio_distribuzione_ord($ordine,$id_arti,0,$id_user,$id_dett);
  1363. //echo "----$ordine, $id_arti, $id_user, C2 = $c2";
  1364. $c20="<input type=\"text\" name=nuova_q[] value=\"$c2\" size=\"3\"><input type=\"hidden\" name=amico[] value=\"$c_amico\" size=\"3\">";
  1365. //if(empty($c15)){$c15="0";};
  1366. unset ($d);
  1367. $i=0;
  1368. $cm = $a_std; // CLASSE MADRE = STANDARD
  1369. //$d[$i][0]=$c1; $d[$i][1]=""; $d[$i][2]=""; $i++;
  1370. $d[$i][0]=$c1; $d[$i][1]=""; $d[$i][2]=""; $i++;
  1371. $d[$i][0]=$c20; $d[$i][1]=""; $d[$i][2]=""; $i++;
  1372. $output_html .= "<tr class=\"odd\">
  1373. <td>$c1</td>
  1374. <td>$c20</td>
  1375. </tr>";
  1376. $riga++;
  1377. // RIGA DEL ME STESSO
  1378. while ($row = mysql_fetch_array($result)){
  1379. //$c0=$row["id_riga_dettaglio_ordine"];
  1380. $c1=$row["nome"];
  1381. $c3=$row["id_dettaglio_ordini"];
  1382. //$c15=articoli_per_amici($c0,$c2);
  1383. $c_amico = $row["id_amici"];
  1384. $c2=n_articoli_ordini_dettaglio_distribuzione_ord($ordine,$id_arti,$row["id_amici"],$id_user,$id_dett);
  1385. //echo "----'''''$ordine, $id_arti, $id_user, C2 = $c2";
  1386. $c20="<input type=\"text\" name=nuova_q[] value=\"$c2\" size=\"3\"><input type=\"hidden\" name=amico[] value=\"$c_amico\" size=\"3\">";
  1387. //if(empty($c15)){$c15="0";};
  1388. unset ($d);
  1389. $i=0;
  1390. $cm = $a_std; // CLASSE MADRE = STANDARD
  1391. //$d[$i][0]=$c1; $d[$i][1]=""; $d[$i][2]=""; $i++;
  1392. $d[$i][0]=$c1; $d[$i][1]=""; $d[$i][2]=""; $i++;
  1393. $d[$i][0]=$c20; $d[$i][1]=""; $d[$i][2]=""; $i++;
  1394. // ----------------$output_html .= r_rt2($cm,$d,$riga,2);
  1395. $output_html .= "<tr class=\"odd\">
  1396. <td>$c1</td>
  1397. <td>$c20</td>
  1398. </tr>";
  1399. $riga++;
  1400. }
  1401. $output_html .= "</table>";
  1402. if(empty($id_dett)){
  1403. $operazione = "do_mod_q";
  1404. }else{
  1405. $operazione = "do_mod_q_uni";
  1406. }
  1407. $output_html .= "<input type=\"hidden\" name=\"id_articolo\" value=\"$id_arti\">
  1408. <input type=\"hidden\" name=\"q_min\" value=\"$q_min\">
  1409. <input type=\"hidden\" name=\"do\" value=\"$operazione\">
  1410. <input type=\"hidden\" name=\"id_ordine\" value=\"$ordine\">
  1411. <input type=\"hidden\" name=\"n_riga\" value=\"$n_riga\">
  1412. <input class=\"large green awesome destra\" style=\"margin:20px;\"type=\"submit\" value=\"Salva i nuovi quantitativi !\"></center>";
  1413. return $output_html;
  1414. }
  1415. function modifica_quantita_articoli_ordine_new($id_arti,$ordine,$id_user,$q_min){
  1416. global $db,$v1,$v2,$v3,$v4,$v5;
  1417. global $a_hdr,$a_std,$a_tot,$a_nto,$a_cnt;
  1418. global $stili;
  1419. // STAMPO LA TABELLA PER AGGIUNGERE ARTICOLI
  1420. // QUI HO TUTTI I MIEI AMICI
  1421. $query ="SELECT
  1422. retegas_dettaglio_ordini.id_dettaglio_ordini,
  1423. retegas_dettaglio_ordini.id_articoli,
  1424. retegas_articoli.codice,
  1425. retegas_articoli.descrizione_articoli,
  1426. retegas_dettaglio_ordini.qta_ord,
  1427. retegas_articoli.qta_minima
  1428. FROM
  1429. retegas_dettaglio_ordini
  1430. Inner Join retegas_articoli ON retegas_dettaglio_ordini.id_articoli = retegas_articoli.id_articoli
  1431. WHERE
  1432. retegas_dettaglio_ordini.id_utenti = '$id_user' AND
  1433. retegas_dettaglio_ordini.id_ordine = '$ordine' AND
  1434. retegas_dettaglio_ordini.id_articoli = '$id_arti'";
  1435. $result = $db->sql_query($query);
  1436. $titolo_tabella = "Articolo unico";
  1437. $h_table .= "
  1438. <div class=\"rg_widget rg_widget_helper\">
  1439. <form method=\"POST\" action=\"ordini_aperti_mod_q.php\">
  1440. <div style =\"margin-bottom:10px;\">Articolo unico, scegli quale tra questi vuoi assegnare agli amici</div>
  1441. <table id=\"spesa\" \">
  1442. <tr class=\"odd\">
  1443. <th>Codice GAS</th>
  1444. <th>Codice</th>
  1445. <th>Descrizione</th>
  1446. <th>Quantità Ordinata</th>
  1447. <th>Assegnatari</th>
  1448. <th>Operazioni</th>
  1449. </tr>";
  1450. //RIGA PER AGGIUNGERE QUANTITATIVO ALL'ARTICOLO.
  1451. $c20="<input type=\"text\" name=\"q_to_add\" value=\"0\" size=\"3\">
  1452. <input type=\"hidden\" name=\"id_arti\" value=\"$id_arti\">
  1453. <input type=\"hidden\" name=\"q_min\" value=\"$q_min\">
  1454. <input type=\"hidden\" name=\"do\" value=\"do_add_q\">
  1455. <input type=\"hidden\" name=\"id_ordine\" value=\"$ordine\">";
  1456. $h_table .='<tr class="odd">
  1457. <td>'.$id_arti.'</td>
  1458. <td></td>
  1459. <td></td>
  1460. <td>'.$c20.'</td>
  1461. <td>[Me stesso]</td>
  1462. <td style="text-align:right;" width="15%"><input class="small green awesome" type="submit" value="Aggiungi"></td>
  1463. </tr>';
  1464. while ($row = mysql_fetch_array($result)){
  1465. $do_del = "ordini_aperti_mod_q.php?do=do_del_riga&n_riga=".$row["id_dettaglio_ordini"]."&id_ordine=".$ordine;
  1466. $assegnatari = lista_assegnatari_articolo_dettaglio($row["id_dettaglio_ordini"]);
  1467. $operazione = ' <a class="awesome yellow small" href="ordini_aperti_mod_q.php?id='.$row["id_articoli"].'&id_ordine='.$ordine.'&q_min='.$q_min.'&id_dett='.$row["id_dettaglio_ordini"].'" title="Modifica">M</a>
  1468. <a class="awesome black small" href="'.$do_del.'" title="Cancella">C</a>';
  1469. $h_table .='<tr class="odd">
  1470. <td>'.$row["id_articoli"].' ('.$row["id_dettaglio_ordini"].')</td>
  1471. <td>'.$row["codice"].'</td>
  1472. <td>'.$row["descrizione_articoli"].'</td>
  1473. <td>'.$row["qta_ord"].'</td>
  1474. <td>'.$assegnatari.'</td>
  1475. <td style="text-align:right;" width="15%">'.$operazione.'</td>
  1476. </tr>';
  1477. }
  1478. $h_table .= "</table>
  1479. </form>
  1480. </div>";
  1481. return $h_table;
  1482. }
  1483. function modifica_quantita_articoli_univoci($id_articolo,$id_ordine,$id_user,$q_min){
  1484. // QUI HO TUTTI I MIEI AMICI
  1485. $query ="SELECT
  1486. retegas_dettaglio_ordini.id_dettaglio_ordini,
  1487. retegas_dettaglio_ordini.id_articoli,
  1488. retegas_articoli.codice,
  1489. retegas_articoli.descrizione_articoli,
  1490. retegas_dettaglio_ordini.qta_ord,
  1491. retegas_articoli.qta_minima
  1492. FROM
  1493. retegas_dettaglio_ordini
  1494. Inner Join retegas_articoli ON retegas_dettaglio_ordini.id_articoli = retegas_articoli.id_articoli
  1495. WHERE
  1496. retegas_dettaglio_ordini.id_utenti = '$id_user' AND
  1497. retegas_dettaglio_ordini.id_ordine = '$ordine' AND
  1498. retegas_dettaglio_ordini.id_articoli = '$id_arti'";
  1499. $result = $db->sql_query($query);
  1500. $titolo_tabella = "Articolo unico";
  1501. $h_table .= "
  1502. <div class=\"rg_widget rg_widget_helper\">
  1503. <form method=\"POST\" action=\"ordini_aperti_mod_q.php\">
  1504. <div style =\"margin-bottom:10px;\">Articolo unico, scegli quale tra questi vuoi assegnare agli amici</div>
  1505. <table id=\"spesa\" \">
  1506. <tr class=\"odd\">
  1507. <th>Codice GAS</th>
  1508. <th>Codice</th>
  1509. <th>Descrizione</th>
  1510. <th>Quantità Ordinata</th>
  1511. <th>Assegnatari</th>
  1512. <th>Operazioni</th>
  1513. </tr>";
  1514. //RIGA PER AGGIUNGERE QUANTITATIVO ALL'ARTICOLO.
  1515. $c20="<input type=\"text\" name=\"q_to_add\" value=\"0\" size=\"3\">
  1516. <input type=\"hidden\" name=\"id_arti\" value=\"$id_arti\">
  1517. <input type=\"hidden\" name=\"q_min\" value=\"$q_min\">
  1518. <input type=\"hidden\" name=\"do\" value=\"do_add_q\">
  1519. <input type=\"hidden\" name=\"id_ordine\" value=\"$ordine\">";
  1520. $h_table .='<tr class="odd">
  1521. <td>'.$id_arti.'</td>
  1522. <td></td>
  1523. <td></td>
  1524. <td>'.$c20.'</td>
  1525. <td>[Me stesso]</td>
  1526. <td style="text-align:right;" width="15%"><input class="small green awesome" type="submit" value="Aggiungi"></td>
  1527. </tr>';
  1528. while ($row = mysql_fetch_array($result)){
  1529. $do_del = "ordini_aperti_mod_q.php?do=do_del_riga&n_riga=".$row["id_dettaglio_ordini"]."&id_ordine=".$ordine;
  1530. $assegnatari = lista_assegnatari_articolo_dettaglio($row["id_dettaglio_ordini"]);
  1531. $operazione = ' <a class="awesome yellow small" href="ordini_aperti_mod_q.php?id='.$row["id_articoli"].'&id_ordine='.$ordine.'&q_min='.$q_min.'&id_dett='.$row["id_dettaglio_ordini"].'" title="Modifica">M</a>
  1532. <a class="awesome black small" href="'.$do_del.'" title="Cancella">C</a>';
  1533. $h_table .='<tr class="odd">
  1534. <td>'.$row["id_articoli"].' ('.$row["id_dettaglio_ordini"].')</td>
  1535. <td>'.$row["codice"].'</td>
  1536. <td>'.$row["descrizione_articoli"].'</td>
  1537. <td>'.$row["qta_ord"].'</td>
  1538. <td>'.$assegnatari.'</td>
  1539. <td style="text-align:right;" width="15%">'.$operazione.'</td>
  1540. </tr>';
  1541. }
  1542. $h_table .= "</table>
  1543. </form>
  1544. </div>";
  1545. return $h_table;
  1546. }
  1547. //ORDINE SCHEDINA
  1548. function ordine_schedina_widget($id_ordine){
  1549. global $db;
  1550. if (id_referente_ordine_globale($id_ordine)<>_USER_ID){
  1551. return "Questo widget serve solo ai gestori degli ordini.";
  1552. }
  1553. $result = $db->sql_query("SELECT
  1554. retegas_dettaglio_ordini.data_inserimento,
  1555. maaking_users.userid,
  1556. maaking_users.fullname,
  1557. retegas_gas.descrizione_gas,
  1558. maaking_users.id_gas,
  1559. retegas_articoli.codice,
  1560. retegas_articoli.descrizione_articoli,
  1561. retegas_dettaglio_ordini.qta_ord,
  1562. retegas_articoli.u_misura,
  1563. retegas_articoli.misura,
  1564. retegas_articoli.prz_dett_arr
  1565. FROM
  1566. retegas_dettaglio_ordini
  1567. Inner Join retegas_articoli ON retegas_dettaglio_ordini.id_articoli = retegas_articoli.id_articoli
  1568. Inner Join maaking_users ON retegas_dettaglio_ordini.id_utenti = maaking_users.userid
  1569. Inner Join retegas_gas ON maaking_users.id_gas = retegas_gas.id_gas
  1570. WHERE
  1571. retegas_dettaglio_ordini.id_ordine = '$id_ordine'
  1572. ORDER BY
  1573. retegas_dettaglio_ordini.data_inserimento DESC");
  1574. $riga=0;
  1575. while ($row = $db->sql_fetchrow($result)){
  1576. $dataora = conv_datetime_from_db($row["data_inserimento"]);
  1577. $id_ut = $row["userid"];
  1578. $nome_ut = $row['fullname'];
  1579. $gas_app = $row['descrizione_gas'];
  1580. $id_gas_app = $row['id_gas'];
  1581. $codice = $row['codice'];
  1582. $descrizione = $row['descrizione_articoli'];
  1583. $q_ord = _nf($row["qta_ord"]);
  1584. $u_mis = $row["u_misura"];
  1585. $mis = $row["misura"];
  1586. $prezzo = _nf($row["prezzo"]);
  1587. $h.= "<ul>";
  1588. $h.= "<li><strong>$dataora, $nome_ut</strong>, <span class=\"small_link\">$gas_app</span></li>";
  1589. $h.= "<li>$codice, $descrizione <span class=\"small_link\">($u_mis $mis x $euro $prezzo) x $q_ord</span></li>";
  1590. $h .="</ul>";
  1591. }//end while
  1592. return $h;
  1593. return "";
  1594. }
  1595. //VARIE PER ORDINI
  1596. function ultimo_ordine_immesso($idu){
  1597. //IDu = nulla
  1598. $sql = "SELECT retegas_ordini.id_ordini FROM retegas_ordini ORDER BY retegas_ordini.id_ordini DESC LIMIT 1;";
  1599. $ret = mysql_query($sql);
  1600. $row = mysql_fetch_row($ret);
  1601. return $row[0];
  1602. }
  1603. function fullname_ref_gas_ordine($id_ordine,$id_gas){
  1604. $sql="SELECT
  1605. maaking_users.fullname
  1606. FROM
  1607. maaking_users
  1608. Inner Join retegas_referenze ON retegas_referenze.id_utente_referenze = maaking_users.userid
  1609. WHERE
  1610. retegas_referenze.id_ordine_referenze = '$id_ordine' AND
  1611. retegas_referenze.id_gas_referenze = '$id_gas'
  1612. LIMIT 1";
  1613. $ret = mysql_query($sql);
  1614. $row = mysql_fetch_row($ret);
  1615. return $row[0];
  1616. }
  1617. function dettagli_ordine($idu){
  1618. //ID ordine --> Quanti dettagli associati
  1619. $sql = "SELECT * FROM `retegas_dettaglio_ordini` WHERE (`retegas_dettaglio_ordini`.`id_ordine`= '$idu');";
  1620. $ret = mysql_query($sql);
  1621. $row = mysql_numrows($ret);
  1622. return $row;
  1623. }
  1624. function ordini_user($idu){
  1625. //ID User --> Quanti ordini ha come referente globale
  1626. $sql = "SELECT retegas_ordini.id_utente FROM retegas_ordini WHERE (((retegas_ordini.id_utente)='$idu'));";
  1627. $ret = mysql_query($sql);
  1628. $row = mysql_num_rows($ret);
  1629. return $row;
  1630. }
  1631. function ordini_user_partecipato($idu){
  1632. //ID User --> Quanti ordini ha come referente globale
  1633. $sql = "SELECT id_utenti, id_ordine FROM retegas_dettaglio_ordini WHERE (((id_utenti)='$idu')) GROUP BY id_ordine;";
  1634. $ret = mysql_query($sql);
  1635. $row = mysql_num_rows($ret);
  1636. return $row;
  1637. }
  1638. function quanti_ordini_per_questo_listino($idu){
  1639. //ID listino --> Quanti ordini ha associati
  1640. $sql = "SELECT *
  1641. FROM
  1642. retegas_ordini
  1643. WHERE
  1644. retegas_ordini.id_listini = '$idu'";
  1645. $ret = mysql_query($sql);
  1646. $row = mysql_num_rows($ret);
  1647. return $row;
  1648. }
  1649. function quanti_ordini_aperti_per_questa_tipologia($idu){
  1650. $sql = "SELECT
  1651. Count(retegas_ordini.id_ordini)
  1652. FROM
  1653. retegas_listini
  1654. Inner Join retegas_ordini ON retegas_ordini.id_listini = retegas_listini.id_listini
  1655. WHERE
  1656. retegas_listini.id_tipologie = '$idu'
  1657. AND
  1658. retegas_ordini.id_stato='2';";
  1659. $ret = mysql_query($sql);
  1660. $row = mysql_fetch_row($ret);
  1661. return $row[0];
  1662. }
  1663. function quanti_ordini_chiusi_per_questa_tipologia($idu){
  1664. $sql = "SELECT
  1665. Count(retegas_ordini.id_ordini)
  1666. FROM
  1667. retegas_listini
  1668. Inner Join retegas_ordini ON retegas_ordini.id_listini = retegas_listini.id_listini
  1669. WHERE
  1670. retegas_listini.id_tipologie = '$idu'
  1671. AND
  1672. retegas_ordini.id_stato<>'2';";
  1673. $ret = mysql_query($sql);
  1674. $row = mysql_fetch_row($ret);
  1675. return $row[0];
  1676. }
  1677. function quanti_listini_per_questa_tipologia($idu){
  1678. $sql = "SELECT
  1679. Count(retegas_listini.id_listini)
  1680. FROM
  1681. retegas_listini
  1682. WHERE
  1683. retegas_listini.id_tipologie = '$idu';";
  1684. $ret = mysql_query($sql);
  1685. $row = mysql_fetch_row($ret);
  1686. return $row[0];
  1687. }
  1688. function ordini_gas_user($idu){
  1689. //ID User --> Quanti ordini ha come referente globale
  1690. $sql = "SELECT * FROM retegas_referenze WHERE (((retegas_referenze.id_utente_referenze)=$idu));";
  1691. $ret = mysql_query($sql);
  1692. $row = mysql_numrows($ret);
  1693. return $row;
  1694. }
  1695. Function ordine_bacino_utenti_part($ord){
  1696. $sql="SELECT
  1697. count(retegas_dettaglio_ordini.id_utenti)
  1698. FROM
  1699. retegas_dettaglio_ordini
  1700. WHERE
  1701. retegas_dettaglio_ordini.id_ordine = '$ord'
  1702. GROUP BY
  1703. retegas_dettaglio_ordini.id_utenti";
  1704. $ret = mysql_query($sql);
  1705. $row = mysql_numrows($ret);
  1706. return $row;
  1707. }
  1708. Function ordine_gas_coinvolti($ord){
  1709. $sql="SELECT
  1710. Count(retegas_referenze.id_referenze)
  1711. FROM
  1712. retegas_referenze
  1713. WHERE
  1714. retegas_referenze.id_ordine_referenze = '$ord'";
  1715. $ret = mysql_query($sql);
  1716. $row = mysql_fetch_row($ret);
  1717. return $row[0];
  1718. }
  1719. function ordine_io_cosa_sono($ordine,$id_user){
  1720. //echo "ORDINE :".$ordine." - ".$id_user."<br>";
  1721. $cosa = 0;
  1722. $mio_gas = id_gas_user($id_user);
  1723. $sql = "SELECT * FROM retegas_referenze
  1724. WHERE (((retegas_referenze .id_ordine_referenze)='$ordine')
  1725. AND (retegas_referenze.id_gas_referenze='$mio_gas'));";
  1726. $ret = mysql_query($sql);
  1727. $nrow2 = mysql_numrows($ret);
  1728. if ($nrow2>0){
  1729. if(ordine_partecipabile($ordine)){
  1730. $cosa=1;
  1731. }
  1732. }
  1733. $sql = "SELECT * FROM retegas_dettaglio_ordini
  1734. WHERE ((retegas_dettaglio_ordini.id_ordine='$ordine')
  1735. AND (retegas_dettaglio_ordini.id_utenti='$id_user'));";
  1736. $ret = mysql_query($sql);
  1737. $nrow = mysql_numrows($ret);
  1738. if ($nrow>0){
  1739. $cosa=2;
  1740. }
  1741. if(id_referente_ordine_proprio_gas($ordine,$mio_gas)==$id_user){
  1742. $cosa=3;
  1743. }
  1744. if(id_referente_ordine_globale($ordine)==$id_user){
  1745. $cosa=4;
  1746. }
  1747. //echo "COSA = ".$cosa;
  1748. return $cosa;
  1749. // 0 = non c'entro
  1750. // 1 = possibile utente
  1751. // 2 = utente
  1752. // 3 = referente GAS
  1753. // 4 = referente ORDINE
  1754. }
  1755. function ordine_inesistente($ordine){
  1756. $sql = "SELECT * FROM retegas_ordini
  1757. WHERE ((retegas_ordini.id_ordini)='$ordine');";
  1758. $ret = mysql_query($sql);
  1759. $nrow2 = mysql_numrows($ret);
  1760. if($nrow2>0){
  1761. return false;
  1762. exit;
  1763. }else{
  1764. return true;
  1765. exit;
  1766. }
  1767. }
  1768. function ordine_partecipabile($ordine){
  1769. $sql = "SELECT * FROM retegas_ordini
  1770. WHERE ((retegas_ordini.id_ordini)='$ordine')
  1771. AND ((retegas_ordini.data_chiusura)>NOW())
  1772. AND ((retegas_ordini.data_apertura)<NOW());";
  1773. $ret = mysql_query($sql);
  1774. $nrow2 = mysql_numrows($ret);
  1775. if($nrow2>0){
  1776. return true;
  1777. exit;
  1778. }else{
  1779. return false;
  1780. exit;
  1781. }
  1782. }
  1783. function stato_from_id_ord($id_ord){
  1784. //ID user --> fullname
  1785. $sql = "SELECT retegas_ordini.id_stato
  1786. FROM retegas_ordini
  1787. WHERE (((retegas_ordini.id_ordini)='$id_ord'));";
  1788. $ret = mysql_query($sql);
  1789. $row = mysql_fetch_row($ret);
  1790. return $row[0];
  1791. }
  1792. function livello_rompimento_ordine($id_ord){
  1793. //ID user --> fullname
  1794. $sql = "SELECT retegas_ordini.mail_level
  1795. FROM retegas_ordini
  1796. WHERE (((retegas_ordini.id_ordini)='$id_ord'));";
  1797. $ret = mysql_query($sql);
  1798. $row = mysql_fetch_row($ret);
  1799. return $row[0];
  1800. }
  1801. function gas_partecipa_ordine($id_ordine,$id_gas){
  1802. global $db;
  1803. $query = "SELECT id_utente_referenze FROM retegas_referenze WHERE id_ordine_referenze='$id_ordine' AND id_gas_referenze='$id_gas' LIMIT 1";
  1804. $res = $db->sql_query($query,FALSE,"gas_partecipa_ordine");
  1805. $row = $db->sql_fetchrow($res);
  1806. $n_row = $db->sql_numrows($res);
  1807. if($n_row>0){
  1808. if($row[0]=="0"){
  1809. return "1";
  1810. exit;
  1811. }else{
  1812. return "2";
  1813. exit;
  1814. }
  1815. }else{
  1816. return "0";
  1817. exit;
  1818. }
  1819. }
  1820. function is_printable_from_id_ord($id_ord){
  1821. //ID user --> fullname
  1822. $sql = "SELECT retegas_ordini.is_printable
  1823. FROM retegas_ordini
  1824. WHERE (((retegas_ordini.id_ordini)='$id_ord'));";
  1825. $ret = mysql_query($sql);
  1826. $row = mysql_fetch_row($ret);
  1827. if($row[0]==1){
  1828. return true;
  1829. }else{
  1830. return false;
  1831. }
  1832. }
  1833. function ordine_cassa_obbligatoria($id_ord){
  1834. //ID user --> fullname
  1835. $sql = "SELECT retegas_ordini.solo_cassati
  1836. FROM retegas_ordini
  1837. WHERE (((retegas_ordini.id_ordini)='$id_ord'));";
  1838. $ret = mysql_query($sql);
  1839. $row = mysql_fetch_row($ret);
  1840. if($row[0]=="si"){
  1841. return true;
  1842. }else{
  1843. return false;
  1844. }
  1845. }
  1846. function n_articoli_ordini_user($idu,$ordine){
  1847. //Quanti articoli ha in ordine id_user
  1848. $idu = intval($idu);
  1849. $ordine = intval($ordine);
  1850. $sql = "SELECT * FROM retegas_dettaglio_ordini WHERE ((retegas_dettaglio_ordini.id_utenti=$idu) AND (retegas_dettaglio_ordini.id_ordine=$ordine));";
  1851. $ret = mysql_query($sql);
  1852. $row = mysql_num_rows($ret);
  1853. return $row;
  1854. }
  1855. function n_articoli_ordini_dettaglio_distribuzione($ordine,$id_articolo,$id_amico,$id_user){
  1856. $sql="SELECT
  1857. retegas_distribuzione_spesa.qta_arr
  1858. FROM
  1859. retegas_distribuzione_spesa
  1860. WHERE
  1861. retegas_distribuzione_spesa.id_amico = '$id_amico' AND
  1862. retegas_distribuzione_spesa.id_ordine = '$ordine' AND
  1863. retegas_distribuzione_spesa.id_articoli = '$id_articolo' AND
  1864. retegas_distribuzione_spesa.id_user = '$id_user'
  1865. LIMIT 1";
  1866. $ret = mysql_query($sql);
  1867. $row = mysql_fetch_row($ret);
  1868. return $row[0];
  1869. }
  1870. function n_articoli_arr_dettaglio_distribuzione_n_riga($id_amico,$n_riga){
  1871. $sql="SELECT
  1872. retegas_distribuzione_spesa.qta_arr
  1873. FROM
  1874. retegas_distribuzione_spesa
  1875. WHERE
  1876. retegas_distribuzione_spesa.id_amico = '$id_amico' AND
  1877. retegas_distribuzione_spesa.id_riga_dettaglio_ordine = '$n_riga'
  1878. LIMIT 1";
  1879. $ret = mysql_query($sql);
  1880. $row = mysql_fetch_row($ret);
  1881. return $row[0];
  1882. }
  1883. function n_articoli_ord_dettaglio_distribuzione_n_riga($id_amico,$n_riga){
  1884. $sql="SELECT
  1885. retegas_distribuzione_spesa.qta_ord
  1886. FROM
  1887. retegas_distribuzione_spesa
  1888. WHERE
  1889. retegas_distribuzione_spesa.id_amico = '$id_amico' AND
  1890. retegas_distribuzione_spesa.id_riga_dettaglio_ordine = '$n_riga'
  1891. LIMIT 1";
  1892. $ret = mysql_query($sql);
  1893. $row = mysql_fetch_row($ret);
  1894. return CAST_TO_FLOAT($row[0]);
  1895. }
  1896. //ARTICOLI ARRIVATI
  1897. function n_articoli_arrivati_da_id_ordine($id_ordine){
  1898. global $db;
  1899. global $class_debug;
  1900. $sql="SELECT
  1901. sum(retegas_dettaglio_ordini.qta_arr)
  1902. FROM
  1903. retegas_dettaglio_ordini
  1904. WHERE
  1905. retegas_dettaglio_ordini.id_ordine = '$id_ordine';";
  1906. $ret = $db->sql_query($sql);
  1907. $row = mysql_fetch_row($ret);
  1908. $class_debug->debug_msg[] = "FUN : n_articoli_arrivati_da_id_ordine id_ordine=$id_ordine, result = ".$row[0];
  1909. return $row[0];
  1910. }
  1911. function n_articoli_arrivati_da_id_dett($id_dett){
  1912. $sql="SELECT
  1913. sum(retegas_dettaglio_ordini.qta_arr)
  1914. FROM
  1915. retegas_dettaglio_ordini
  1916. WHERE
  1917. retegas_dettaglio_ordini.id_dettaglio_ordini = '$id_dett'
  1918. GROUP BY
  1919. retegas_dettaglio_ordini.id_articoli
  1920. LIMIT 1";
  1921. $ret = mysql_query($sql);
  1922. $row = mysql_fetch_row($ret);
  1923. return $row[0];
  1924. }
  1925. function n_articoli_arrivati_da_user($ordine,$id_articolo,$id_user){
  1926. $sql="SELECT
  1927. sum(retegas_dettaglio_ordini.qta_arr)
  1928. FROM
  1929. retegas_dettaglio_ordini
  1930. WHERE
  1931. retegas_dettaglio_ordini.id_ordine = '$ordine' AND
  1932. retegas_dettaglio_ordini.id_articoli = '$id_articolo' AND
  1933. retegas_dettaglio_ordini.id_utenti = '$id_user';";
  1934. $ret = mysql_query($sql);
  1935. $row = mysql_fetch_row($ret);
  1936. return round($row[0]);
  1937. }
  1938. //ARTICOLI ORDINATI
  1939. function n_articoli_ordinati_da_id_ordine($id_ordine){
  1940. global $db;
  1941. global $class_debug;
  1942. $sql="SELECT
  1943. sum(retegas_dettaglio_ordini.qta_ord)
  1944. FROM
  1945. retegas_dettaglio_ordini
  1946. WHERE
  1947. retegas_dettaglio_ordini.id_ordine = '$id_ordine';";
  1948. $ret = $db->sql_query($sql);
  1949. $row = mysql_fetch_row($ret);
  1950. $class_debug->debug_msg[] = "FUN : n_articoli_ordinati_da_id_ordine id_ordine=$id_ordine, result = ".$row[0];
  1951. return $row[0];
  1952. }
  1953. function n_articoli_ordinati_da_id_dett($id_dett){
  1954. $sql="SELECT
  1955. sum(retegas_dettaglio_ordini.qta_ord)
  1956. FROM
  1957. retegas_dettaglio_ordini
  1958. WHERE
  1959. retegas_dettaglio_ordini.id_dettaglio_ordini = '$id_dett'
  1960. GROUP BY
  1961. retegas_dettaglio_ordini.id_articoli
  1962. LIMIT 1";
  1963. $ret = mysql_query($sql);
  1964. $row = mysql_fetch_row($ret);
  1965. return $row[0];
  1966. }
  1967. function n_articoli_ordinati_da_user($ordine,$id_articolo,$id_user){
  1968. $sql="SELECT
  1969. sum(retegas_dettaglio_ordini.qta_ord)
  1970. FROM
  1971. retegas_dettaglio_ordini
  1972. WHERE
  1973. retegas_dettaglio_ordini.id_ordine = '$ordine' AND
  1974. retegas_dettaglio_ordini.id_articoli = '$id_articolo' AND
  1975. retegas_dettaglio_ordini.id_utenti = '$id_user'
  1976. GROUP BY
  1977. retegas_dettaglio_ordini.id_articoli
  1978. LIMIT 1";
  1979. $ret = mysql_query($sql);
  1980. $row = mysql_fetch_row($ret);
  1981. return $row[0];
  1982. }
  1983. function n_articoli_ordinati_da_amico($id_ordine,$id_utente,$id_amico,$id_articolo){
  1984. //echo "id ordine : $id_ordine<br>";
  1985. //echo "id amico : $id_amico<br>";
  1986. //echo "id utente : $id_utente<br>";
  1987. //echo "id articolo : $id_articolo<br>";
  1988. global $db;
  1989. $sql = "SELECT sum(qta_ord) FROM retegas_distribuzione_spesa
  1990. WHERE id_articoli = '$id_articolo'
  1991. AND id_user='$id_utente'
  1992. AND id_amico ='$id_amico'
  1993. AND id_ordine ='$id_ordine';";
  1994. $res = $db->sql_query($sql);
  1995. $row = $db->sql_fetchrow($res);
  1996. return round($row[0],4);
  1997. }
  1998. //ARTICOLI ARRIVATI
  1999. function q_articoli_avanzo_ordine($ordine){
  2000. //Quanti articoli avanza l'ordine intero
  2001. $ordine = intval($ordine);
  2002. $sql = "SELECT
  2003. (Sum(retegas_dettaglio_ordini.qta_ord)),
  2004. retegas_articoli.codice,
  2005. retegas_dettaglio_ordini.id_articoli,
  2006. retegas_articoli.qta_minima,
  2007. retegas_articoli.qta_scatola
  2008. FROM
  2009. retegas_dettaglio_ordini
  2010. Inner Join retegas_articoli ON retegas_dettaglio_ordini.id_articoli = retegas_articoli.id_articoli
  2011. WHERE
  2012. retegas_dettaglio_ordini.id_ordine = '$ordine'
  2013. GROUP BY
  2014. retegas_dettaglio_ordini.id_articoli;";
  2015. $ret = mysql_query($sql);
  2016. $avanzo=0;
  2017. while ($row = mysql_fetch_row($ret))
  2018. {
  2019. (float)$somma = $row[0];
  2020. (float)$sottrarre = $row[4];
  2021. //Echo "$row[0], $row[1], $row[2], $row[3], $row[4], Somma=$somma sottrarre=$sottrarre <br>";
  2022. if (empty($somma)){
  2023. // echo "Art : $row[1] Somma = a zero<br>";
  2024. $somma=0;
  2025. }
  2026. //if ($somma < $sottrarre){
  2027. //echo "Art : $articolo Somma minore di sottrarre";
  2028. // $somma=0;
  2029. //}
  2030. while ($somma >= $sottrarre){
  2031. $somma = ($somma - $sottrarre);
  2032. }
  2033. $avanzo = $avanzo + $somma;
  2034. //echo "Articolo $row[1] Avanzo = $avanzo<br>";
  2035. }
  2036. return $avanzo;
  2037. }
  2038. function q_articoli_avanzo_ordine_arr($ordine){
  2039. //Quanti articoli avanza l'ordine intero
  2040. $ordine = intval($ordine);
  2041. $sql = "SELECT
  2042. (Sum(retegas_dettaglio_ordini.qta_arr)),
  2043. retegas_articoli.codice,
  2044. retegas_dettaglio_ordini.id_articoli,
  2045. retegas_articoli.qta_minima,
  2046. retegas_articoli.qta_scatola
  2047. FROM
  2048. retegas_dettaglio_ordini
  2049. Inner Join retegas_articoli ON retegas_dettaglio_ordini.id_articoli = retegas_articoli.id_articoli
  2050. WHERE
  2051. retegas_dettaglio_ordini.id_ordine = '$ordine'
  2052. GROUP BY
  2053. retegas_dettaglio_ordini.id_articoli;";
  2054. $ret = mysql_query($sql);
  2055. $avanzo=0;
  2056. while ($row = mysql_fetch_row($ret))
  2057. {
  2058. (float)$somma = $row[0];
  2059. (float)$sottrarre = $row[4];
  2060. //Echo "$row[0], $row[1], $row[2], $row[3], $row[4], Somma=$somma sottrarre=$sottrarre <br>";
  2061. if (empty($somma)){
  2062. // echo "Art : $row[1] Somma = a zero<br>";
  2063. $somma=0;
  2064. }
  2065. //if ($somma < $sottrarre){
  2066. //echo "Art : $articolo Somma minore di sottrarre";
  2067. // $somma=0;
  2068. //}
  2069. while ($somma >= $sottrarre){
  2070. $somma = round(($somma - $sottrarre),3);
  2071. }
  2072. $avanzo = $avanzo + $somma;
  2073. //echo "Articolo $row[1] Avanzo = $avanzo<br>";
  2074. }
  2075. return $avanzo;
  2076. }
  2077. function q_scatole_intere_ordine($ordine){
  2078. //Quanti articoli avanza l'ordine intero
  2079. $ordine = intval($ordine);
  2080. $sql = "SELECT
  2081. (Sum(retegas_dettaglio_ordini.qta_ord)),
  2082. retegas_articoli.codice,
  2083. retegas_dettaglio_ordini.id_articoli,
  2084. retegas_articoli.qta_minima,
  2085. retegas_articoli.qta_scatola
  2086. FROM
  2087. retegas_dettaglio_ordini
  2088. Inner Join retegas_articoli ON retegas_dettaglio_ordini.id_articoli = retegas_articoli.id_articoli
  2089. WHERE
  2090. retegas_dettaglio_ordini.id_ordine = '$ordine'
  2091. GROUP BY
  2092. retegas_dettaglio_ordini.id_articoli;";
  2093. $ret = mysql_query($sql);
  2094. $avanzo=0;
  2095. $scatole=0;
  2096. while ($row = mysql_fetch_row($ret))
  2097. {
  2098. (float)$somma = $row[0];
  2099. (float)$sottrarre = $row[4];
  2100. //Echo "$row[0], $row[1], $row[2], $row[3], $row[4], Somma=$somma sottrarre=$sottrarre <br>";
  2101. if (empty($somma)){
  2102. //echo "Art : $articolo Somma = a zero";
  2103. //break;
  2104. $somma=0;
  2105. }
  2106. if ($somma < $sottrarre){
  2107. //echo "Art : $articolo Somma minore di sottrarre";
  2108. $somma=0;
  2109. }
  2110. while ($somma > 0){
  2111. //echo "$somma meno $sottrarre";
  2112. $somma = ($somma - $sottrarre);
  2113. if($somma>=0){
  2114. $scatole++;
  2115. }
  2116. //echo " UGUALE $somma , scatole = $scatole<br>";
  2117. }
  2118. }
  2119. return (int)$scatole;
  2120. }
  2121. function q_scatole_intere_ordine_arr($ordine){
  2122. //Quanti articoli avanza l'ordine intero
  2123. $ordine = intval($ordine);
  2124. $sql = "SELECT
  2125. (Sum(retegas_dettaglio_ordini.qta_arr)),
  2126. retegas_articoli.codice,
  2127. retegas_dettaglio_ordini.id_articoli,
  2128. retegas_articoli.qta_minima,
  2129. retegas_articoli.qta_scatola
  2130. FROM
  2131. retegas_dettaglio_ordini
  2132. Inner Join retegas_articoli ON retegas_dettaglio_ordini.id_articoli = retegas_articoli.id_articoli
  2133. WHERE
  2134. retegas_dettaglio_ordini.id_ordine = '$ordine'
  2135. GROUP BY
  2136. retegas_dettaglio_ordini.id_articoli;";
  2137. $ret = mysql_query($sql);
  2138. $avanzo=0;
  2139. $scatole=0;
  2140. while ($row = mysql_fetch_row($ret))
  2141. {
  2142. (float)$somma = $row[0];
  2143. (float)$sottrarre = $row[4];
  2144. //Echo "$row[0], $row[1], $row[2], $row[3], $row[4], Somma=$somma sottrarre=$sottrarre <br>";
  2145. if (empty($somma)){
  2146. //echo "Art : $articolo Somma = a zero";
  2147. //break;
  2148. $somma=0;
  2149. }
  2150. if ($somma < $sottrarre){
  2151. //echo "Art : $articolo Somma minore di sottrarre";
  2152. $somma=0;
  2153. }
  2154. while ($somma > 0){
  2155. //echo "$somma meno $sottrarre";
  2156. $somma = ($somma - $sottrarre);
  2157. if($somma>=0){
  2158. $scatole++;
  2159. }
  2160. //echo " UGUALE $somma , scatole = $scatole<br>";
  2161. }
  2162. }
  2163. return (int)$scatole;
  2164. }
  2165. function q_scatole_intere_articolo_ordine($ordine,$articolo){
  2166. //Quanti articoli avanza l'ordine intero
  2167. $ordine = intval($ordine);
  2168. $sql = "SELECT
  2169. Sum(retegas_dettaglio_ordini.qta_ord),
  2170. retegas_articoli.codice,
  2171. retegas_dettaglio_ordini.id_articoli,
  2172. retegas_articoli.qta_minima,
  2173. retegas_articoli.qta_scatola
  2174. FROM
  2175. retegas_dettaglio_ordini
  2176. Inner Join retegas_articoli ON retegas_dettaglio_ordini.id_articoli = retegas_articoli.id_articoli
  2177. WHERE
  2178. retegas_dettaglio_ordini.id_ordine = '$ordine'
  2179. AND
  2180. retegas_dettaglio_ordini.id_articoli = '$articolo'
  2181. GROUP BY
  2182. retegas_dettaglio_ordini.id_articoli
  2183. LIMIT 1";
  2184. $ret = mysql_query($sql);
  2185. $row = mysql_fetch_row($ret);
  2186. $scatole=0;
  2187. (float)$somma = $row[0];
  2188. (float)$sottrarre = $row[4];
  2189. // Echo "$row[0], $row[1], $row[2], $row[3], $row[4], Somma=$somma sottrarre=$sottrarre <br>";
  2190. if (empty($somma)){
  2191. //echo "Art : $articolo Somma = a zero";
  2192. return 0;
  2193. exit;
  2194. }
  2195. if ($somma < $sottrarre){
  2196. //echo "Art : $articolo Somma minore di sottrarre";
  2197. return 0;
  2198. exit;
  2199. }
  2200. while ($somma > 0){
  2201. //echo "$somma meno $sottrarre";
  2202. $somma = ($somma - $sottrarre);
  2203. if($somma>=0){
  2204. $scatole++;
  2205. }
  2206. //echo " UGUALE $somma , scatole = $scatole<br>";
  2207. }
  2208. return (int)$scatole;
  2209. }
  2210. function q_scatole_intere_articolo_ordine_arr($ordine,$articolo){
  2211. //Quanti articoli avanza l'ordine intero
  2212. $ordine = intval($ordine);
  2213. $sql = "SELECT
  2214. Sum(retegas_dettaglio_ordini.qta_arr),
  2215. retegas_articoli.codice,
  2216. retegas_dettaglio_ordini.id_articoli,
  2217. retegas_articoli.qta_minima,
  2218. retegas_articoli.qta_scatola
  2219. FROM
  2220. retegas_dettaglio_ordini
  2221. Inner Join retegas_articoli ON retegas_dettaglio_ordini.id_articoli = retegas_articoli.id_articoli
  2222. WHERE
  2223. retegas_dettaglio_ordini.id_ordine = '$ordine'
  2224. AND
  2225. retegas_dettaglio_ordini.id_articoli = '$articolo'
  2226. GROUP BY
  2227. retegas_dettaglio_ordini.id_articoli
  2228. LIMIT 1";
  2229. $ret = mysql_query($sql);
  2230. $row = mysql_fetch_row($ret);
  2231. $scatole=0;
  2232. (float)$somma = $row[0];
  2233. (float)$sottrarre = $row[4];
  2234. //Echo "$row[0], $row[1], $row[2], $row[3], $row[4], Somma=$somma sottrarre=$sottrarre <br>";
  2235. if (empty($somma)){
  2236. //echo "Art : $articolo Somma = a zero";
  2237. return 0;
  2238. exit;
  2239. }
  2240. if ($somma < $sottrarre){
  2241. //echo "Art : $articolo Somma minore di sottrarre";
  2242. return 0;
  2243. exit;
  2244. }
  2245. while ($somma > 0){
  2246. //echo "$somma meno $sottrarre";
  2247. $somma = ($somma - $sottrarre);
  2248. if($somma>=0){
  2249. $scatole++;
  2250. }
  2251. //echo " UGUALE $somma , scatole = $scatole<br>";
  2252. }
  2253. return (int)$scatole;
  2254. }
  2255. function q_scatole_intere_articolo_singolo($scatola,$q){
  2256. $scatole=0;
  2257. (float)$somma = $q;
  2258. (float)$sottrarre = $scatola;
  2259. //Echo "$row[0], $row[1], $row[2], $row[3], $row[4], Somma=$somma sottrarre=$sottrarre <br>";
  2260. if (empty($somma)){
  2261. //echo "Art : $articolo Somma = a zero";
  2262. return 0;
  2263. exit;
  2264. }
  2265. if ($somma < $sottrarre){
  2266. //echo "Art : $articolo Somma minore di sottrarre";
  2267. return 0;
  2268. exit;
  2269. }
  2270. while ($somma > 0){
  2271. //echo "$somma meno $sottrarre";
  2272. $somma = ($somma - $sottrarre);
  2273. if($somma>=0){
  2274. $scatole++;
  2275. }
  2276. //echo " UGUALE $somma , scatole = $scatole<br>";
  2277. }
  2278. return (int)$scatole;
  2279. }
  2280. function q_articoli_avanzo_articolo_ordine($ordine,$articolo){
  2281. //Quanti articoli avanza l'ordine intero
  2282. $ordine = intval($ordine);
  2283. $sql = "SELECT
  2284. Sum(retegas_dettaglio_ordini.qta_ord),
  2285. retegas_articoli.codice,
  2286. retegas_dettaglio_ordini.id_articoli,
  2287. retegas_articoli.qta_minima,
  2288. retegas_articoli.qta_scatola
  2289. FROM
  2290. retegas_dettaglio_ordini
  2291. Inner Join retegas_articoli ON retegas_dettaglio_ordini.id_articoli = retegas_articoli.id_articoli
  2292. WHERE
  2293. retegas_dettaglio_ordini.id_ordine = '$ordine'
  2294. AND
  2295. retegas_dettaglio_ordini.id_articoli = '$articolo'
  2296. GROUP BY
  2297. retegas_dettaglio_ordini.id_articoli
  2298. LIMIT 1";
  2299. $ret = mysql_query($sql);
  2300. $row = mysql_fetch_row($ret);
  2301. $scatole=0;
  2302. (float)$somma = $row[0];
  2303. (float)$sottrarre = $row[4];
  2304. //Echo "$row[0], $row[1], $row[2], $row[3], $row[4], Somma=$somma sottrarre=$sottrarre <br>";
  2305. if (empty($somma)){
  2306. //ho "Art : $articolo Somma = a zero";
  2307. return 0;
  2308. exit;
  2309. }
  2310. if ($somma < $sottrarre){
  2311. //echo "Art : $articolo Somma minore di sottrarre";
  2312. return $somma;
  2313. exit;
  2314. }
  2315. while ($somma >= $sottrarre){
  2316. //echo "$somma meno $sottrarre";
  2317. $somma = round(($somma - $sottrarre),3);
  2318. //echo " UGUALE $somma , avanzo = $somma<br>";
  2319. }
  2320. return $somma;
  2321. }
  2322. function q_articoli_avanzo_articolo_ordine_arr($ordine,$articolo){
  2323. //Quanti articoli avanza l'ordine intero
  2324. $ordine = intval($ordine);
  2325. $sql = "SELECT
  2326. Sum(retegas_dettaglio_ordini.qta_arr),
  2327. retegas_articoli.codice,
  2328. retegas_dettaglio_ordini.id_articoli,
  2329. retegas_articoli.qta_minima,
  2330. retegas_articoli.qta_scatola
  2331. FROM
  2332. retegas_dettaglio_ordini
  2333. Inner Join retegas_articoli ON retegas_dettaglio_ordini.id_articoli = retegas_articoli.id_articoli
  2334. WHERE
  2335. retegas_dettaglio_ordini.id_ordine = '$ordine'
  2336. AND
  2337. retegas_dettaglio_ordini.id_articoli = '$articolo'
  2338. GROUP BY
  2339. retegas_dettaglio_ordini.id_articoli
  2340. LIMIT 1";
  2341. $ret = mysql_query($sql);
  2342. $row = mysql_fetch_row($ret);
  2343. $scatole=0;
  2344. (float)$somma = $row[0];
  2345. (float)$sottrarre = $row[4];
  2346. //Echo "$row[0], $row[1], $row[2], $row[3], $row[4], Somma=$somma sottrarre=$sottrarre <br>";
  2347. if (empty($somma)){
  2348. //echo "Art : $articolo Somma = a zero";
  2349. return 0;
  2350. exit;
  2351. }
  2352. if ($somma < $sottrarre){
  2353. //echo "Art : $articolo Somma minore di sottrarre";
  2354. return $somma;
  2355. exit;
  2356. }
  2357. while ($somma >= $sottrarre){
  2358. //echo "$somma meno $sottrarre";
  2359. $somma = ($somma - $sottrarre);
  2360. //echo " UGUALE $somma , avanzo = $somma<br>";
  2361. }
  2362. return $somma;
  2363. }
  2364. function q_articoli_avanzo_articolo_singolo($scatola,$q){
  2365. $scatole=0;
  2366. (float)$somma = $q;
  2367. (float)$sottrarre = $scatola;
  2368. //Echo "$row[0], $row[1], $row[2], $row[3], $row[4], Somma=$somma sottrarre=$sottrarre <br>";
  2369. if (empty($somma)){
  2370. //echo "Art : $articolo Somma = a zero";
  2371. return 0;
  2372. exit;
  2373. }
  2374. if ($somma < $sottrarre){
  2375. //echo "Art : $articolo Somma minore di sottrarre";
  2376. return $somma;
  2377. exit;
  2378. }
  2379. while ($somma >= $sottrarre){
  2380. //echo "$somma meno $sottrarre";
  2381. $somma = ($somma - $sottrarre);
  2382. //echo " UGUALE $somma , avanzo = $somma<br>";
  2383. }
  2384. return $somma;
  2385. }
  2386. function articoli_per_amici($id_riga_spesa,$id_amico){
  2387. //ID Ordine --> ID referente GAS(id user)
  2388. $sql = "SELECT
  2389. retegas_distribuzione_spesa.qta_arr
  2390. FROM
  2391. retegas_distribuzione_spesa
  2392. WHERE
  2393. retegas_distribuzione_spesa.id_riga_dettaglio_ordine = '$id_riga_spesa' AND
  2394. retegas_distribuzione_spesa.id_amico = '$id_amico'";
  2395. $ret = mysql_query($sql);
  2396. $row = mysql_fetch_row($ret);
  2397. return $row[0];
  2398. }
  2399. function n_articoli_per_riga($id_riga){
  2400. //ID Ordine --> ID referente GAS(id user)
  2401. $sql = "SELECT
  2402. retegas_dettaglio_ordini.qta_arr
  2403. FROM
  2404. retegas_dettaglio_ordini
  2405. WHERE
  2406. retegas_dettaglio_ordini.id_dettaglio_ordini = '$id_riga'";
  2407. $ret = mysql_query($sql);
  2408. $row = mysql_fetch_row($ret);
  2409. $articoli_utente= $row[0];
  2410. $sql ="SELECT
  2411. Sum(retegas_distribuzione_spesa.qta_arr)
  2412. FROM
  2413. retegas_distribuzione_spesa
  2414. WHERE
  2415. retegas_distribuzione_spesa.id_riga_dettaglio_ordine = '$id_riga'";
  2416. $ret = mysql_query($sql);
  2417. $row = mysql_fetch_row($ret);
  2418. $articoli_amici= $row[0];
  2419. return $articoli_utente;
  2420. }
  2421. function n_riga_ordini_from_code($id_ordine,$id_articolo,$id_user,$code){
  2422. global $db;
  2423. $sql="SELECT
  2424. retegas_dettaglio_ordini.id_dettaglio_ordini
  2425. FROM
  2426. retegas_dettaglio_ordini
  2427. WHERE
  2428. retegas_dettaglio_ordini.id_articoli = '$id_articolo' AND
  2429. retegas_dettaglio_ordini.id_ordine = '$id_ordine' AND
  2430. retegas_dettaglio_ordini.id_Stati = '$code' AND
  2431. retegas_dettaglio_ordini.id_utenti = '$id_user' LIMIT 1;";
  2432. $ret = $db->sql_query($sql);
  2433. $row = $db->sql_fetchrow($ret);
  2434. return $row[0];
  2435. }
  2436. function n_riga_ordini_dettaglio_distribuzione($id_ordine,$id_articolo,$id_user){
  2437. global $db;
  2438. $sql="SELECT
  2439. retegas_dettaglio_ordini.id_dettaglio_ordini
  2440. FROM
  2441. retegas_dettaglio_ordini
  2442. WHERE
  2443. retegas_dettaglio_ordini.id_articoli = '$id_articolo' AND
  2444. retegas_dettaglio_ordini.id_ordine = '$id_ordine' AND
  2445. retegas_dettaglio_ordini.id_utenti = '$id_user' LIMIT 1;";
  2446. $ret = $db->sql_query($sql);
  2447. $row = $db->sql_fetchrow($ret);
  2448. return $row[0];
  2449. }
  2450. function n_articoli_ordini_dettaglio_distribuzione_ord($ordine,$id_articolo,$id_amico,$id_user,$id_dett=null){
  2451. //Echo "ordine $ordine, Articolo $id_articolo, Amico $id_amico, User $id_user, IDDett $id_dett<br>";
  2452. if(empty($id_dett)){
  2453. $sql="SELECT
  2454. retegas_distribuzione_spesa.qta_ord
  2455. FROM
  2456. retegas_distribuzione_spesa
  2457. WHERE
  2458. retegas_distribuzione_spesa.id_amico = '$id_amico' AND
  2459. retegas_distribuzione_spesa.id_ordine = '$ordine' AND
  2460. retegas_distribuzione_spesa.id_articoli = '$id_articolo' AND
  2461. retegas_distribuzione_spesa.id_user = '$id_user'
  2462. LIMIT 1";
  2463. }else{
  2464. $sql="SELECT
  2465. retegas_distribuzione_spesa.qta_ord
  2466. FROM
  2467. retegas_distribuzione_spesa
  2468. WHERE
  2469. retegas_distribuzione_spesa.id_amico = '$id_amico' AND
  2470. retegas_distribuzione_spesa.id_riga_dettaglio_ordine = '$id_dett'
  2471. LIMIT 1";
  2472. }
  2473. $ret = mysql_query($sql);
  2474. $row = mysql_fetch_row($ret);
  2475. //Echo "Risultato: ".$row[0]."<br>";
  2476. return $row[0];
  2477. }
  2478. function lista_assegnatari_articolo_dettaglio($dettaglio_ordine){
  2479. global $db;
  2480. $sql="SELECT
  2481. retegas_amici.nome
  2482. FROM
  2483. retegas_distribuzione_spesa
  2484. Left Join retegas_amici ON retegas_distribuzione_spesa.id_amico = retegas_amici.id_amici
  2485. WHERE retegas_distribuzione_spesa.id_riga_dettaglio_ordine = '$dettaglio_ordine'";
  2486. $ret = $db->sql_query($sql);
  2487. $lista ="<ul>";
  2488. while ($row = mysql_fetch_array($ret)){
  2489. if(is_empty($row[0])){
  2490. $lista .= "<li>Me stesso</li>";
  2491. }else{
  2492. $lista .= "<li>".$row[0]."</li>";
  2493. }
  2494. }
  2495. $lista .="</ul>";
  2496. return $lista;
  2497. }
  2498. //CANCELLO ARTICOLO DA UN ORDINE DI USER
  2499. function do_delete_all_articolo_specfico($id_arti,$id_ordine,$id_user){
  2500. global $RG_addr;
  2501. global $db,$user;
  2502. // CANCELLO DALLA TABELLA DETTAGLI ORDINE.
  2503. $pippo = "delete from retegas_dettaglio_ordini WHERE retegas_dettaglio_ordini.id_articoli='$id_arti' AND retegas_dettaglio_ordini.id_ordine='$id_ordine' AND retegas_dettaglio_ordini.id_utenti='$id_user';";
  2504. //echo "SQL = ".$pippo."<br>";
  2505. $db->sql_query($pippo);
  2506. $quanti_dettagli = $db->sql_affectedrows();
  2507. // CANCELLO DALLA DISTRIBUZIONE
  2508. $sql2 = "delete from retegas_distribuzione_spesa
  2509. WHERE
  2510. retegas_distribuzione_spesa.id_articoli='$id_arti'
  2511. AND retegas_distribuzione_spesa.id_ordine='$id_ordine'
  2512. AND retegas_distribuzione_spesa.id_user='$id_user';";
  2513. $db->sql_query($sql2);
  2514. $quante_distribuzioni = $db->sql_affectedrows();
  2515. $msg = "Cancellati tutti gli articoli cod. $id_arti dall'ordine e la loro distribuzione ($quanti_dettagli dettagli e $quante_distribuzioni distribuzioni)";
  2516. $id = $id_ordine;
  2517. $vo = valore_totale_ordine($id);
  2518. $no = descrizione_ordine_from_id_ordine($id);
  2519. if(_USER_USA_CASSA){
  2520. // CANCELLO DALLA CASSA
  2521. if(read_option_prenotazione_ordine($id,$id_user)<>"SI"){
  2522. $log .="PRENOTAZIONE ? NO, eseguo update cassa<br>";
  2523. cassa_update_ordine_utente($id,$id_user);
  2524. }else{
  2525. $log .="PRENOTAZIONE ? SI, salto update cassa<br>";
  2526. }
  2527. }else{
  2528. $log .="USER USA CASSA ? NO, salto update cassa<br>";
  2529. }
  2530. log_me($id,$id_user,"ORD","ART","Eliminazione multipla di articoli all'ordine $id ($no), adesso vale $vo",$vo,$msg."<br>".$pippo."---".$sql2."---<br>".$log);
  2531. }
  2532. function do_delete_all_ordine_user($id_ordine,$id_user){
  2533. global $db;
  2534. // CANCELLO DALLA TABELLA DETTAGLI ORDINE.
  2535. $pippo = "delete from retegas_dettaglio_ordini
  2536. WHERE retegas_dettaglio_ordini.id_ordine='$id_ordine'
  2537. AND retegas_dettaglio_ordini.id_utenti='$id_user';";
  2538. $db->sql_query($pippo);
  2539. // CANCELLO DALLA DISTRIBUZIONE
  2540. $sql2 = "delete from retegas_distribuzione_spesa
  2541. WHERE
  2542. retegas_distribuzione_spesa.id_ordine='$id_ordine'
  2543. AND retegas_distribuzione_spesa.id_user='$id_user';";
  2544. $db->sql_query($sql2);
  2545. // CANCELLO DALLA CASSA
  2546. $sql3 = "delete from retegas_cassa_utenti
  2547. WHERE
  2548. retegas_cassa_utenti.id_ordine='$id_ordine'
  2549. AND retegas_cassa_utenti.id_utente='$id_user';";
  2550. $db->sql_query($sql3);
  2551. log_me($id_ordine,$id_user,"ORD","DEL","Eliminazione totale ordine $id_ordine",0,$pippo."<br>".$sql2."<br>".$sql3);
  2552. }
  2553. function testo_maggiorazione_mio_gas($ordine,$gas){
  2554. //echo $ordine." - ".$gas;
  2555. global $db;
  2556. $query = "SELECT * FROM retegas_referenze WHERE id_ordine_referenze='$ordine' AND id_gas_referenze='$gas';";
  2557. $result = $db->sql_query($query);
  2558. $row = $db->sql_fetchrow($result);
  2559. return $row["note_referenza"];
  2560. }
  2561. function luogo_distribuzione_mio_gas($ordine,$gas){
  2562. //echo $ordine." - ".$gas;
  2563. global $db;
  2564. $query = "SELECT * FROM retegas_referenze WHERE id_ordine_referenze='$ordine' AND id_gas_referenze='$gas';";
  2565. $result = $db->sql_query($query);
  2566. $row = $db->sql_fetchrow($result);
  2567. return $row["luogo_distribuzione"];
  2568. }
  2569. function testo_distribuzione_mio_gas($ordine,$gas){
  2570. //echo $ordine." - ".$gas;
  2571. global $db;
  2572. $query = "SELECT * FROM retegas_referenze WHERE id_ordine_referenze='$ordine' AND id_gas_referenze='$gas';";
  2573. $result = $db->sql_query($query);
  2574. $row = $db->sql_fetchrow($result);
  2575. return $row["testo_distribuzione"];
  2576. }
  2577. function data_distribuzione_start_mio_gas($ordine,$gas){
  2578. //echo $ordine." - ".$gas;
  2579. global $db;
  2580. $query = "SELECT * FROM retegas_referenze WHERE id_ordine_referenze='$ordine' AND id_gas_referenze='$gas';";
  2581. $result = $db->sql_query($query);
  2582. $row = $db->sql_fetchrow($result);
  2583. return $row["data_distribuzione_start"];
  2584. }
  2585. function data_distribuzione_end_mio_gas($ordine,$gas){
  2586. //echo $ordine." - ".$gas;
  2587. global $db;
  2588. $query = "SELECT * FROM retegas_referenze WHERE id_ordine_referenze='$ordine' AND id_gas_referenze='$gas';";
  2589. $result = $db->sql_query($query);
  2590. $row = $db->sql_fetchrow($result);
  2591. return $row["data_distribuzione_end"];
  2592. }
  2593. function fullname_referente_ordine_proprio_gas($ordine,$gas){
  2594. //ID articolo --> IdUser
  2595. $sql = "SELECT maaking_users.fullname
  2596. FROM ((retegas_ordini INNER JOIN retegas_referenze ON retegas_ordini.id_ordini = retegas_referenze.id_ordine_referenze) LEFT JOIN maaking_users ON retegas_referenze.id_utente_referenze = maaking_users.userid) INNER JOIN maaking_users AS maaking_users_1 ON retegas_ordini.id_utente = maaking_users_1.userid
  2597. WHERE (((retegas_ordini.id_ordini)='$ordine') AND ((retegas_referenze.id_gas_referenze)='$gas'));";
  2598. $ret = mysql_query($sql);
  2599. $row = mysql_fetch_row($ret);
  2600. return $row[0];
  2601. }
  2602. function mail_referente_ordine_proprio_gas($ordine,$gas){
  2603. //ID articolo --> IdUser
  2604. $sql = "SELECT maaking_users.email
  2605. FROM ((retegas_ordini INNER JOIN retegas_referenze ON retegas_ordini.id_ordini = retegas_referenze.id_ordine_referenze) LEFT JOIN maaking_users ON retegas_referenze.id_utente_referenze = maaking_users.userid) INNER JOIN maaking_users AS maaking_users_1 ON retegas_ordini.id_utente = maaking_users_1.userid
  2606. WHERE (((retegas_ordini.id_ordini)='$ordine') AND ((retegas_referenze.id_gas_referenze)='$gas'));";
  2607. $ret = mysql_query($sql);
  2608. $row = mysql_fetch_row($ret);
  2609. return $row[0];
  2610. }
  2611. function tel_referente_ordine_proprio_gas($ordine,$gas){
  2612. //ID articolo --> IdUser
  2613. $sql = "SELECT maaking_users.tel
  2614. FROM ((retegas_ordini INNER JOIN retegas_referenze ON retegas_ordini.id_ordini = retegas_referenze.id_ordine_referenze) LEFT JOIN maaking_users ON retegas_referenze.id_utente_referenze = maaking_users.userid) INNER JOIN maaking_users AS maaking_users_1 ON retegas_ordini.id_utente = maaking_users_1.userid
  2615. WHERE (((retegas_ordini.id_ordini)='$ordine') AND ((retegas_referenze.id_gas_referenze)='$gas'));";
  2616. $ret = mysql_query($sql);
  2617. $row = mysql_fetch_row($ret);
  2618. return $row[0];
  2619. }
  2620. function mail_referente_ordine_globale($ordine){
  2621. $sql = "SELECT
  2622. maaking_users.email
  2623. FROM
  2624. retegas_ordini
  2625. Inner Join maaking_users ON retegas_ordini.id_utente = maaking_users.userid
  2626. WHERE
  2627. retegas_ordini.id_ordini = '$ordine'";
  2628. $ret = mysql_query($sql);
  2629. $row = mysql_fetch_row($ret);
  2630. return $row[0];
  2631. }
  2632. function fullname_referente_ordine_globale($ordine){
  2633. $sql = "SELECT
  2634. maaking_users.fullname
  2635. FROM
  2636. retegas_ordini
  2637. Inner Join maaking_users ON retegas_ordini.id_utente = maaking_users.userid
  2638. WHERE
  2639. retegas_ordini.id_ordini = '$ordine'";
  2640. $ret = mysql_query($sql);
  2641. $row = mysql_fetch_row($ret);
  2642. return $row[0];
  2643. }
  2644. function id_referente_ordine_proprio_gas($ordine,$gas){
  2645. //ID Ordine --> ID referente GAS(id user)
  2646. $sql = "SELECT maaking_users.userid
  2647. FROM ((retegas_ordini INNER JOIN retegas_referenze ON retegas_ordini.id_ordini = retegas_referenze.id_ordine_referenze) LEFT JOIN maaking_users ON retegas_referenze.id_utente_referenze = maaking_users.userid) INNER JOIN maaking_users AS maaking_users_1 ON retegas_ordini.id_utente = maaking_users_1.userid
  2648. WHERE (((retegas_ordini.id_ordini)='$ordine') AND ((retegas_referenze.id_gas_referenze)='$gas'));";
  2649. $ret = mysql_query($sql);
  2650. $row = mysql_fetch_row($ret);
  2651. return $row[0];
  2652. }
  2653. function id_referente_ordine_globale($ordine){
  2654. //ID Ordine --> ID referente GAS(id user)
  2655. $sql = "SELECT retegas_ordini.id_utente FROM retegas_ordini WHERE retegas_ordini.id_ordini = '$ordine' LIMIT 1;";
  2656. $ret = mysql_query($sql);
  2657. $row = mysql_fetch_row($ret);
  2658. return $row[0];
  2659. }
  2660. function id_user_from_id_dettaglio_ordine($id_dett){
  2661. $sql = "SELECT retegas_dettaglio_ordini.id_utenti FROM retegas_dettaglio_ordini WHERE retegas_dettaglio_ordini.id_dettaglio_ordini = '$id_dett' LIMIT 1;";
  2662. $ret = mysql_query($sql);
  2663. $row = mysql_fetch_row($ret);
  2664. return $row[0];
  2665. }
  2666. Function descrizione_ordine_from_id_ordine($idu){
  2667. // ID ordine ----> ID listino
  2668. $sql = "SELECT retegas_ordini.descrizione_ordini FROM retegas_ordini
  2669. WHERE (((retegas_ordini.id_ordini)='$idu'));";
  2670. $ret = mysql_query($sql);
  2671. $row = mysql_fetch_row($ret);
  2672. return $row[0];
  2673. }
  2674. Function avanzamento_ordine_from_id_ordine($idu){
  2675. // ID ordine ----> ID listino
  2676. $sql = "SELECT
  2677. (DATEDIFF(NOW(),DATE(retegas_ordini.data_apertura)) / DATEDIFF(DATE(retegas_ordini.data_chiusura),DATE(retegas_ordini.data_apertura))*100)
  2678. FROM
  2679. retegas_ordini
  2680. WHERE
  2681. retegas_ordini.id_ordini = '$idu';";
  2682. $ret = mysql_query($sql);
  2683. $row = mysql_fetch_row($ret);
  2684. return $row[0];
  2685. }
  2686. Function listino_ordine_from_id_ordine($idu){
  2687. global $db;
  2688. $sql = "SELECT retegas_ordini.id_listini FROM retegas_ordini
  2689. WHERE (((retegas_ordini.id_ordini)='$idu'));";
  2690. $ret = $db->sql_query($sql);
  2691. $row = mysql_fetch_row($ret);
  2692. return $row[0];
  2693. }
  2694. Function elenco_mail_ordine($ord){
  2695. // ID ordine ---> Recordset delle mail
  2696. $sql ="SELECT maaking_users.email
  2697. FROM retegas_ordini INNER JOIN (retegas_dettaglio_ordini INNER JOIN maaking_users ON retegas_dettaglio_ordini.id_utenti = maaking_users.userid) ON retegas_ordini.id_ordini = retegas_dettaglio_ordini.id_ordine
  2698. GROUP BY retegas_ordini.id_ordini, maaking_users.email
  2699. HAVING (((retegas_ordini.id_ordini)=$ord));";
  2700. $ret = mysql_query($sql);
  2701. return $ret;
  2702. }
  2703. Function elenco_fullname_ordine($ord){
  2704. // ID ordine ---> Recordset dei fullname
  2705. $sql ="SELECT maaking_users.fullname
  2706. FROM retegas_ordini INNER JOIN (retegas_dettaglio_ordini INNER JOIN maaking_users ON retegas_dettaglio_ordini.id_utenti = maaking_users.userid) ON retegas_ordini.id_ordini = retegas_dettaglio_ordini.id_ordine
  2707. GROUP BY retegas_ordini.id_ordini, maaking_users.email
  2708. HAVING (((retegas_ordini.id_ordini)=$ord));";
  2709. $ret = mysql_query($sql);
  2710. return $ret;
  2711. }
  2712. Function ordine_bacino_utenti($ord){
  2713. $sql="SELECT
  2714. Count(maaking_users.username)
  2715. FROM
  2716. retegas_referenze
  2717. Left Join maaking_users ON retegas_referenze.id_gas_referenze = maaking_users.id_gas
  2718. WHERE
  2719. retegas_referenze.id_ordine_referenze = '$ord'
  2720. AND maaking_users.isactive=1;";
  2721. $ret = mysql_query($sql);
  2722. $row = mysql_fetch_row($ret);
  2723. return $row[0];
  2724. }
  2725. Function ordine_bacino_utenti_part_gas($ord,$gas){
  2726. $sql="SELECT
  2727. count(maaking_users.username)
  2728. FROM
  2729. retegas_dettaglio_ordini
  2730. Inner Join maaking_users ON retegas_dettaglio_ordini.id_utenti = maaking_users.userid
  2731. WHERE
  2732. maaking_users.isactive='1' AND
  2733. retegas_dettaglio_ordini.id_ordine = '$ord' AND
  2734. maaking_users.id_gas = '$gas'
  2735. GROUP BY
  2736. maaking_users.userid";
  2737. $ret = mysql_query($sql);
  2738. $row = mysql_numrows($ret);
  2739. return $row;
  2740. }
  2741. //PRENOTAZIONI
  2742. function ordine_valore_parte_prenotata($id_ordine){
  2743. global $db, $RG_addr;
  2744. $sql = "SELECT
  2745. Sum(retegas_dettaglio_ordini.qta_ord * retegas_articoli.prezzo) AS somma,
  2746. retegas_dettaglio_ordini.id_utenti
  2747. FROM
  2748. retegas_dettaglio_ordini
  2749. Inner Join retegas_articoli ON retegas_dettaglio_ordini.id_articoli = retegas_articoli.id_articoli
  2750. WHERE
  2751. retegas_dettaglio_ordini.id_ordine = '$id_ordine'
  2752. AND
  2753. (SELECT retegas_options.chiave FROM retegas_options
  2754. WHERE retegas_options.id_user = retegas_dettaglio_ordini.id_utenti
  2755. AND retegas_options.id_ordine = retegas_dettaglio_ordini.id_ordine
  2756. AND retegas_options.chiave ='PRENOTAZIONE_ORDINI') is not null
  2757. GROUP BY
  2758. retegas_dettaglio_ordini.id_utenti";
  2759. $res = $db->sql_query($sql);
  2760. $t=0;
  2761. while ($row = $db->sql_fetchrow($res)){
  2762. $t = $t + $row["somma"];
  2763. }
  2764. return round($t,4);
  2765. }
  2766. function ordine_valore_parte_prenotata_user($id_ordine,$id_utente){
  2767. global $db, $RG_addr;
  2768. $sql = "SELECT
  2769. Sum(retegas_dettaglio_ordini.qta_ord * retegas_articoli.prezzo) AS somma,
  2770. retegas_dettaglio_ordini.id_utenti
  2771. FROM
  2772. retegas_dettaglio_ordini
  2773. Inner Join retegas_articoli ON retegas_dettaglio_ordini.id_articoli = retegas_articoli.id_articoli
  2774. WHERE
  2775. retegas_dettaglio_ordini.id_ordine = '$id_ordine'
  2776. AND
  2777. (SELECT retegas_options.chiave FROM retegas_options
  2778. WHERE retegas_options.id_user = retegas_dettaglio_ordini.id_utenti
  2779. AND retegas_options.id_ordine = retegas_dettaglio_ordini.id_ordine
  2780. AND retegas_options.chiave ='PRENOTAZIONE_ORDINI') is not null
  2781. AND retegas_dettaglio_ordini.id_utenti = '$id_utente'
  2782. GROUP BY
  2783. retegas_dettaglio_ordini.id_utenti";
  2784. $res = $db->sql_query($sql);
  2785. $t=0;
  2786. while ($row = $db->sql_fetchrow($res)){
  2787. $t = $t + $row["somma"];
  2788. }
  2789. return round($t,4);
  2790. }
  2791. function ordine_valore_parte_confermata($id_ordine){
  2792. return round(valore_totale_ordine_qarr($id_ordine)-ordine_valore_parte_prenotata($id_ordine),4);
  2793. }
  2794. function ordine_valore_parte_confermata_user($id_ordine,$id_utente){
  2795. //NON SERVE IN QUANTO SE ESISTE LA PRENOTAZIONE QUESTA E' SEMPRE A 0
  2796. return round(valore_arrivato_netto_ordine_user($id_ordine,$id_utente)-ordine_valore_parte_prenotata_user($id_ordine,$id_utente),4);
  2797. }
  2798. function n_ordini_partecipabili($gas){
  2799. global $db;
  2800. $my_query="SELECT retegas_ordini.id_ordini,
  2801. retegas_ordini.descrizione_ordini,
  2802. retegas_listini.descrizione_listini,
  2803. retegas_ditte.descrizione_ditte,
  2804. retegas_ordini.data_chiusura,
  2805. retegas_gas.descrizione_gas,
  2806. retegas_referenze.id_gas_referenze,
  2807. maaking_users.userid,
  2808. maaking_users.fullname,
  2809. retegas_ordini.id_utente,
  2810. retegas_ordini.id_listini,
  2811. retegas_ditte.id_ditte,
  2812. retegas_ordini.data_apertura
  2813. FROM (((((retegas_ordini INNER JOIN retegas_referenze ON retegas_ordini.id_ordini = retegas_referenze.id_ordine_referenze) LEFT JOIN maaking_users ON retegas_referenze.id_utente_referenze = maaking_users.userid) INNER JOIN retegas_listini ON retegas_ordini.id_listini = retegas_listini.id_listini) INNER JOIN retegas_ditte ON retegas_listini.id_ditte = retegas_ditte.id_ditte) INNER JOIN maaking_users AS maaking_users_1 ON retegas_ordini.id_utente = maaking_users_1.userid) INNER JOIN retegas_gas ON maaking_users_1.id_gas = retegas_gas.id_gas
  2814. WHERE (((retegas_ordini.data_chiusura)>NOW()) AND ((retegas_ordini.data_apertura)<NOW()) AND ((retegas_referenze.id_gas_referenze)=$gas))
  2815. ORDER BY retegas_ordini.data_chiusura ASC ;";
  2816. $res = $db->sql_query($my_query);
  2817. return $db->sql_numrows($res);
  2818. }
  2819. function n_ordini_futuri($gas){
  2820. global $db;
  2821. $my_query="SELECT retegas_ordini.id_ordini,
  2822. retegas_ordini.descrizione_ordini,
  2823. retegas_listini.descrizione_listini,
  2824. retegas_ditte.descrizione_ditte,
  2825. retegas_ordini.data_chiusura,
  2826. retegas_gas.descrizione_gas,
  2827. retegas_referenze.id_gas_referenze,
  2828. maaking_users.userid,
  2829. maaking_users.fullname,
  2830. retegas_ordini.id_utente,
  2831. retegas_ordini.id_listini,
  2832. retegas_ditte.id_ditte,
  2833. retegas_ordini.data_apertura
  2834. FROM (((((retegas_ordini INNER JOIN retegas_referenze ON retegas_ordini.id_ordini = retegas_referenze.id_ordine_referenze) LEFT JOIN maaking_users ON retegas_referenze.id_utente_referenze = maaking_users.userid) INNER JOIN retegas_listini ON retegas_ordini.id_listini = retegas_listini.id_listini) INNER JOIN retegas_ditte ON retegas_listini.id_ditte = retegas_ditte.id_ditte) INNER JOIN maaking_users AS maaking_users_1 ON retegas_ordini.id_utente = maaking_users_1.userid) INNER JOIN retegas_gas ON maaking_users_1.id_gas = retegas_gas.id_gas
  2835. WHERE (((retegas_ordini.data_apertura)>NOW()) AND ((retegas_referenze.id_gas_referenze)=$gas))
  2836. ORDER BY retegas_ordini.data_chiusura ASC ;";
  2837. $res = $db->sql_query($my_query);
  2838. return $db->sql_numrows($res);
  2839. }
  2840. function n_ordini_chiusi($gas){
  2841. global $db;
  2842. $my_query = "SELECT retegas_ordini.id_ordini,
  2843. retegas_ordini.descrizione_ordini,
  2844. retegas_listini.descrizione_listini,
  2845. retegas_ditte.descrizione_ditte,
  2846. retegas_ordini.data_chiusura,
  2847. retegas_gas.descrizione_gas,
  2848. retegas_referenze.id_gas_referenze,
  2849. maaking_users.userid,
  2850. maaking_users.fullname,
  2851. retegas_ordini.id_utente,
  2852. retegas_ordini.id_listini,
  2853. retegas_ditte.id_ditte,
  2854. retegas_ordini.data_apertura
  2855. FROM (((((retegas_ordini INNER JOIN retegas_referenze ON retegas_ordini.id_ordini = retegas_referenze.id_ordine_referenze) LEFT JOIN maaking_users ON retegas_referenze.id_utente_referenze = maaking_users.userid) INNER JOIN retegas_listini ON retegas_ordini.id_listini = retegas_listini.id_listini) INNER JOIN retegas_ditte ON retegas_listini.id_ditte = retegas_ditte.id_ditte) INNER JOIN maaking_users AS maaking_users_1 ON retegas_ordini.id_utente = maaking_users_1.userid) INNER JOIN retegas_gas ON maaking_users_1.id_gas = retegas_gas.id_gas
  2856. WHERE (((retegas_ordini.data_chiusura)<NOW()) AND ((retegas_referenze.id_gas_referenze)=$gas))
  2857. ORDER BY retegas_ordini.data_chiusura DESC;";
  2858. $res = $db->sql_query($my_query);
  2859. return $db->sql_numrows($res);
  2860. }
  2861. function n_ordini_non_confermati($id_user,$giorni){
  2862. global $db;
  2863. $sql = "SELECT * FROM retegas_ordini WHERE id_utente='$id_user' AND is_printable=0 AND (DATE_ADD(data_chiusura, INTERVAL $giorni DAY) < NOW());";
  2864. return $db->sql_numrows($db->sql_query($sql));
  2865. }
  2866. //DES
  2867. function n_gestori_ordini($gas,$minimo=1){
  2868. global $db;
  2869. $sql = "SELECT
  2870. Count(retegas_ordini.id_ordini) AS ordini_gestiti
  2871. FROM
  2872. maaking_users
  2873. Inner Join retegas_ordini ON maaking_users.userid = retegas_ordini.id_utente
  2874. WHERE
  2875. maaking_users.id_gas = '$gas'
  2876. GROUP BY
  2877. maaking_users.userid
  2878. HAVING
  2879. ordini_gestiti >= '$minimo'";
  2880. return (int)$db->sql_numrows($db->sql_query($sql));
  2881. }
  2882. function n_partecipanti_ordini($gas,$minimo=1){
  2883. global $db;
  2884. $sql = "SELECT
  2885. Count(retegas_ordini.id_ordini) AS ordini_gestiti
  2886. FROM
  2887. maaking_users
  2888. Inner Join retegas_ordini ON maaking_users.userid = retegas_ordini.id_utente
  2889. WHERE
  2890. maaking_users.id_gas = '$gas'
  2891. GROUP BY
  2892. maaking_users.userid
  2893. HAVING
  2894. ordini_gestiti >= '$minimo'";
  2895. return (int)$db->sql_numrows($db->sql_query($sql));
  2896. }
  2897. function n_ordini_condivisi_gas($id_gas){
  2898. Global $db;
  2899. $sql = "SELECT
  2900. retegas_referenze.id_referenze,
  2901. retegas_referenze.id_utente_referenze
  2902. FROM
  2903. retegas_referenze
  2904. WHERE
  2905. retegas_referenze.id_gas_referenze = '$id_gas' AND
  2906. retegas_referenze.id_utente_referenze <> '0'";
  2907. $res = $db->sql_query($sql);
  2908. $row = $db->sql_numrows($res);
  2909. return $row;
  2910. }
  2911. function n_ordini_gestiti_gas($id_gas){
  2912. Global $db;
  2913. $sql = "SELECT
  2914. retegas_ordini.id_ordini
  2915. FROM
  2916. retegas_ordini
  2917. Inner Join maaking_users ON retegas_ordini.id_utente = maaking_users.userid
  2918. WHERE
  2919. maaking_users.id_gas = '$id_gas'";
  2920. $res = $db->sql_query($sql);
  2921. $row = $db->sql_numrows($res);
  2922. return $row;
  2923. }
  2924. //RETTIFICHE
  2925. function ridistribuisci_quantita_amici_1($key,$nq,&$msg){
  2926. //echo "---- Ridistribuisco $key con $nq <br>";
  2927. global $db;
  2928. // Ho la lista degli amici riferita all'articolo KEY
  2929. $qry ="SELECT
  2930. retegas_distribuzione_spesa.id_distribuzione,
  2931. retegas_distribuzione_spesa.id_riga_dettaglio_ordine,
  2932. retegas_distribuzione_spesa.qta_ord,
  2933. retegas_distribuzione_spesa.qta_arr,
  2934. retegas_distribuzione_spesa.id_amico
  2935. FROM
  2936. retegas_distribuzione_spesa
  2937. WHERE
  2938. retegas_distribuzione_spesa.id_riga_dettaglio_ordine = '$key'
  2939. ORDER BY
  2940. retegas_distribuzione_spesa.id_amico DESC";
  2941. // Adesso la popolo con la nuova quantità partendo dall'ultima riga immessa;
  2942. // in realtà cancellando e ripopolando tutto ho sempre lo stesso utente penalizzato;
  2943. $result = $db->sql_query($qry);
  2944. $totalrows = $db->sql_numrows($result);
  2945. $rimasto = $nq;
  2946. $i = 0;
  2947. while ($row = mysql_fetch_array($result)){
  2948. $i++;
  2949. $l .= "------------->Ciclo n.$i<br>";
  2950. $a = $rimasto - $row['qta_ord'];
  2951. $id_q = $row['id_distribuzione'];
  2952. if($a>0){
  2953. $l .= "------------->Rimasto - Qord > 0 <br>";
  2954. $q_a = $row['qta_ord'];
  2955. $rimasto=$a;
  2956. // se è l'ultima riga allora aggiungo un po' di roba
  2957. if($i==$totalrows){
  2958. $q_a = $rimasto + $row['qta_ord'];
  2959. $rimasto=0;
  2960. $l .= "------------->Ultima riga; qa= (rimasto + qord) $q_a <br>";
  2961. }
  2962. }else{
  2963. $l .= "------------->Rimasto - Qord = 0 <br>";
  2964. $q_a = $rimasto;
  2965. $rimasto=0;
  2966. }
  2967. $l .= "------------->INSERISCO $q_a in $id_q<br>";
  2968. // update
  2969. $result2 = mysql_query("UPDATE retegas_distribuzione_spesa
  2970. SET retegas_distribuzione_spesa.qta_arr = '$q_a',
  2971. retegas_distribuzione_spesa.data_ins = NOW()
  2972. WHERE (retegas_distribuzione_spesa.id_distribuzione='$id_q');");
  2973. $l .= "------------->Fine riga<br><br>";
  2974. // CICLO DI UPDATE
  2975. }
  2976. log_me(0,_USER_ID,"DIS","1","ridistribuisci_quantita_amici_1",0,$l);
  2977. }