PageRenderTime 88ms CodeModel.GetById 33ms RepoModel.GetById 1ms app.codeStats 0ms

/soapklient/saldi_update.php

https://github.com/nielsrune/saldi
PHP | 290 lines | 246 code | 10 blank | 34 comment | 68 complexity | cfec6965bd2df45b73a5ea1f0c235aa9 MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. // #----------------- saldi_update.php -----ver 3.2.6---- 2012.01.10 ----------
  3. // LICENS
  4. //
  5. // Dette program er fri software. Du kan gendistribuere det og / eller
  6. // modificere det under betingelserne i GNU General Public License (GPL)
  7. // som er udgivet af The Free Software Foundation; enten i version 2
  8. // af denne licens eller en senere version efter eget valg.
  9. // Fra og med version 3.2.2 dog under iagttagelse af følgende:
  10. //
  11. // Programmet må ikke uden forudgående skriftlig aftale anvendes
  12. // i konkurrence med DANOSOFT ApS eller anden rettighedshaver til programmet.
  13. //
  14. // Programmet er udgivet med haab om at det vil vaere til gavn,
  15. // men UDEN NOGEN FORM FOR REKLAMATIONSRET ELLER GARANTI. Se
  16. // GNU General Public Licensen for flere detaljer.
  17. //
  18. // En dansk oversaettelse af licensen kan laeses her:
  19. // http://www.fundanemt.com/gpl_da.html
  20. //
  21. // Copyright (c) 2003-2012 DANOSOFT ApS
  22. // ----------------------------------------------------------------------
  23. if (!function_exists('saldi_update')) {
  24. function saldi_update($insert_id) {
  25. global $url;
  26. $debitorgruppe=1; #Den debitorgruppe som webdebitorer tilhører.
  27. if (!$insert_id) return('missing insert_id');
  28. $q=mysql_query("select * from orders where orders_id = '$insert_id'");
  29. if ($r=mysql_fetch_array($q)) {
  30. $customers_id=$r['customers_id'];
  31. $customers_name=$r['customers_name'];
  32. $customers_company=$r['customers_company'];
  33. $customers_street_address=$r['customers_street_address'];
  34. $customers_city=$r['customers_city'];
  35. $customers_postcode=$r['customers_postcode'];
  36. $customers_country=$r['customers_country'];
  37. $customers_telephone=$r['customers_telephone'];
  38. $customers_email_address=$r['customers_email_address'];
  39. $delivery_name=$r['delivery_name'];
  40. $delivery_company=$r['delivery_company'];
  41. $delivery_street_address=$r['delivery_street_address'];
  42. $delivery_city=$r['delivery_city'];
  43. $delivery_postcode=$r['delivery_postcode'];
  44. $delivery_country=$r['delivery_country'];
  45. $billing_name=$r['billing_name'];
  46. $billing_company=$r['billing_company'];
  47. $billing_street_address=$r['billing_street_address'];
  48. $billing_city=$r['billing_city'];
  49. $billing_postcode=$r['billing_postcode'];
  50. $billing_country=$r['billing_country'];
  51. $date_purchased=$r['date_purchased'];
  52. $payment_method=$r['payment_method'];
  53. $currency=$r['currency'];
  54. $currency_value=$r['currency_value'];
  55. } else return('order not found');
  56. $x=0;
  57. $q=mysql_query("select * from orders_products where orders_id = '$insert_id'");
  58. while ($r=mysql_fetch_array($q)) {
  59. $x++;
  60. $orders_products_id[$x]=$r['orders_products_id'];
  61. $products_id[$x]=$r['products_id'];
  62. $products_model[$x]=$r['products_model'];
  63. $products_name[$x]=$r['products_name'];
  64. $products_price[$x]=$r['products_price'];
  65. $products_tax[$x]=$r['products_tax'];
  66. $products_quantity[$x]=$r['products_quantity'];
  67. $stregkode[$x]=$products_model[$x];
  68. }
  69. $item_quantity=$x;
  70. if (!$item_quantity) return('no items in order');
  71. if (file_exists("soapklient/soapfunc.php")) $filnavn="soapklient/soapfunc.log";
  72. else $filnavn="soapfunc.log";
  73. $fp=fopen($filnavn,'a');
  74. fwrite($fp,"------------".date("Y-m-d H:i:s")."------------\n");
  75. # medshop hack.
  76. if ($billing_country=='Denmark') $debitorgruppe="1";
  77. elseif ($billing_country=='Norway') $debitorgruppe="3";
  78. elseif ($billing_company) $debitorgruppe="4";
  79. else $debitorgruppe="2";
  80. for ($x=1;$x<=$item_quantity;$x++) {
  81. $y=0;
  82. $select="products_options.products_options_id as products_options_id,products_options_values.products_options_values_id as products_options_values_id";
  83. $from="orders_products_attributes,products_options,products_options_values";
  84. $where="orders_products_attributes.orders_id = '$insert_id' and orders_products_attributes.orders_products_id='$orders_products_id[$x]' ";
  85. $where.="and products_options.products_options_name=orders_products_attributes.products_options and ";
  86. $where.="products_options_values.products_options_values_name=orders_products_attributes.products_options_values";
  87. fwrite($fp,__LINE__." - SELECT $select FROM $from WHERE $where\n");
  88. $q=mysql_query("SELECT $select FROM $from WHERE $where");
  89. while ($r=mysql_fetch_array($q)) {
  90. $y++;
  91. $products_options_id[$x][$y]=$r['products_options_id'];
  92. $products_options_values_id[$x][$y]=$r['products_options_values_id'];
  93. fwrite($fp,__LINE__.$products_options_id[$x][$y]." -:-".$products_options_values_id[$x][$y]."\n");
  94. }
  95. }
  96. if (file_exists("soapklient/soapfunc.php")) include("soapklient/soapfunc.php");
  97. else include("soapfunc.php");
  98. if (file_exists("soapklient/saldi_connect.php")) include("soapklient/saldi_connect.php");
  99. else include("saldi_connect.php");
  100. fwrite($fp,__LINE__."$url logon($regnskab,$brugernavn,$adgangskode)\n");
  101. list($fejl,$svar)=explode(chr(9),logon($regnskab,$brugernavn,$adgangskode));
  102. fwrite($fp,__LINE__."fejl $fejl - svar $svar\n");
  103. $fejl*=1;
  104. if ($fejl) return ($fejl.chr(9).$svar);
  105. else $s_id=$svar;
  106. fwrite($fp,__LINE__." - saldi_id from shop_adresser where shop_id='$customers_id'\n");
  107. list($fejl,$svar)=explode(chr(9),singleselect($s_id,"saldi_id from shop_adresser where shop_id='$customers_id'"));
  108. fwrite($fp,__LINE__." - svar $svar\n");
  109. if ($fejl) return ($svar);
  110. elseif ($svar) {
  111. $konto_id=$svar;
  112. fwrite($fp,__LINE__." - kontonr from adresser where id='$konto_id'\n");
  113. list($fejl,$svar)=explode(chr(9),singleselect($s_id,"kontonr from adresser where id='$konto_id'"));
  114. fwrite($fp,__LINE__." - svar $svar\n");
  115. if ($fejl) return ($svar);
  116. else $kontonr=$svar;
  117. } else {
  118. if ($customers_company) {
  119. $kontotype='Erhverv';
  120. $fornavn=NULL;
  121. $efternavn=NULL;
  122. $kontakt=$customers_name;
  123. } else {
  124. $kontotype='Privat';
  125. $customers_company=$customers_name;
  126. $delivery_company=$delivery_name;
  127. $billing_company=$billing_name;
  128. list($fornavn,$tmp)=explode(" ",$customers_name);
  129. $efternavn=trim(substr($customers_name,strlen($fornavn)));
  130. $kontakt='';
  131. }
  132. fwrite($fp,__LINE__." - id,kontonr,firmanavn,addr1 from adresser where art='D' and tlf='$customers_telephone'\n");
  133. # tjekker om der er en kunde i saldi med samme telefonnummer.
  134. list($fejl,$svar)=explode(chr(9),singleselect($s_id,"id,kontonr,firmanavn,addr1 from adresser where art='D' and tlf='$customers_telephone'"));
  135. fwrite($fp,__LINE__." - svar $svar\n");
  136. if ($fejl) return ($svar);
  137. else list($konto_id,$kontonr,$firmanavn,$addr1)=explode(',',$svar);
  138. if ($kontonr && strtolower($customers_company)==strtolower($firmanavn) && strtolower($customers_street_address)==strtolower($addr1)) {
  139. return("0".chr(9).$id);
  140. } elseif ($customers_telephone) {
  141. fwrite($fp,__LINE__." - id,kontonr,firmanavn,addr1 from adresser where art='D' and kontonr='$customers_telephone'\n");
  142. # tjekker om der er en kunde i saldi med samme kontonummer som kundens telefonnummer.
  143. list($fejl,$svar)=explode(chr(9),singleselect($s_id,"id,kontonr,firmanavn,addr1 from adresser where art='D' and kontonr='$customers_telephone'"));
  144. fwrite($fp,__LINE__." - svar $fejl - $svar\n");
  145. if ($fejl) return ($svar);
  146. else list($konto_id,$kontonr,$firmanavn,$addr1)=explode(',',$svar);
  147. # if ($kontonr && strtolower($customers_company)==strtolower($firmanavn) && strtolower($customers_street_address)==strtolower($addr1)) {
  148. # return("0".chr(9).$id);
  149. } elseif (!$customers_telephone) {
  150. fwrite($fp,__LINE__." - max(kontonr) as kontonr from adresser where art='D'\n");
  151. list($fejl,$svar)=explode(chr(9),singleselect($s_id,"max(kontonr) as kontonr from adresser where art='D'"));
  152. fwrite($fp,__LINE__." - svar $svar\n");
  153. if ($fejl) return ('1'.chr(9).$svar);
  154. else $kontonr=$svar+1;
  155. }
  156. if (!$kontonr) $kontonr=str_replace("+","",$customers_telephone);
  157. fwrite($fp,__LINE__."- $kontonr=".str_replace("z","",$customers_telephone)." - \n");
  158. $kontonr=str_replace(" ","",$kontonr);
  159. fwrite($fp,__LINE__."- $kontonr - \n");
  160. $kontonr*=1;
  161. fwrite($fp,__LINE__." -$kontonr - \n");
  162. if (!$konto_id) {
  163. fwrite($fp,__LINE__." - adresser (kontonr,firmanavn,fornavn,efternavn,kontakt,addr1,bynavn,postnr,land,tlf,email,lev_kontakt,lev_firmanavn,lev_addr1,lev_bynavn,lev_postnr,lev_land,lev_tlf,art,kontotype,gruppe) values ('$kontonr','$customers_company','$fornavn','$efternavn','$kontakt','$customers_street_address','$customers_city','$customers_postcode','$customers_country','$customers_telephone','$customers_email_address','$delivery_name','$delivery_company','$delivery_street_address','$delivery_city','$delivery_postcode','$delivery_country','$delivery_telephone','D','$kontotype','$debitorgruppe')\n");
  164. list($fejl,$svar)=explode(chr(9),singleinsert($s_id,"adresser (kontonr,firmanavn,fornavn,efternavn,kontakt,addr1,bynavn,postnr,land,tlf,email,lev_kontakt,lev_firmanavn,lev_addr1,lev_bynavn,lev_postnr,lev_land,lev_tlf,art,kontotype,gruppe) values ('$kontonr','$customers_company','$fornavn','$efternavn','$kontakt','$customers_street_address','$customers_city','$customers_postcode','$customers_country','$customers_telephone','$customers_email_address','$delivery_name','$delivery_company','$delivery_street_address','$delivery_city','$delivery_postcode','$delivery_country','$delivery_telephone','D','$kontotype','$debitorgruppe')"));
  165. fwrite($fp,__LINE__." - svar $svar\n");
  166. if ($fejl) return ($fejl.chr(9).$svar);
  167. else $konto_id=$svar;
  168. fwrite($fp,__LINE__." - shop_adresser (shop_id,saldi_id) values ('$customers_id','$konto_id')\n");
  169. list($fejl,$svar)=explode(chr(9),singleinsert($s_id,"shop_adresser (shop_id,saldi_id) values ('$customers_id','$konto_id')"));
  170. fwrite($fp,__LINE__." - svar $svar\n");
  171. if ($fejl) return('1'.chr(9).$svar);
  172. if ($kontotype=='Erhverv') {
  173. fwrite($fp,__LINE__." - ansatte (navn,konto_id) values ('$customers_name','$konto_id')\n");
  174. list($fejl,$svar)=explode(chr(9),singleinsert($s_id,"ansatte (navn,konto_id) values ('$customers_name','$konto_id')"));
  175. fwrite($fp,__LINE__." - svar $svar\n");
  176. if ($fejl) return ($fejl.chr(9).$svar);
  177. }
  178. }
  179. }
  180. fwrite($fp,__LINE__." - saldi_id from shop_ordrer where shop_id='$insert_id'\n");
  181. list($fejl,$svar)=explode(chr(9),singleselect($s_id,"saldi_id from shop_ordrer where shop_id='$insert_id'"));
  182. fwrite($fp,__LINE__." - svar $svar\n");
  183. if ($fejl) return ($svar);
  184. elseif ($svar) $ordre_id=$svar;
  185. else {
  186. fwrite($fp,__LINE__." - max(ordrenr) as ordrenr from ordrer where art='DO'\n");
  187. list($fejl,$svar)=explode(chr(9),singleselect($s_id,"max(ordrenr) as ordrenr from ordrer where art='DO'"));
  188. fwrite($fp,__LINE__." - fejl $fejl, svar $svar\n");
  189. if ($fejl) return ($fejl.chr(9).$svar);
  190. else $ordrenr=$svar+1;
  191. $ordredate=date("Y-m-d");
  192. if(!$billing_company){
  193. $billing_company=$billing_name;
  194. $billing_name='';
  195. }
  196. if(!$delivery_company){
  197. $delivery_company=$delivery_name;
  198. $delivery_name='';
  199. }
  200. #cho "ordrer (konto_id,kontonr,firmanavn,kontakt,addr1,bynavn,postnr,land,email,lev_kontakt,lev_navn,lev_addr1,lev_bynavn,lev_postnr,art) values ('$konto_id','$kontonr','$billing_company','$billing_name','$billing_street_address','$billing_city','$billing_postcode','$billing_country','$customers_email_address','$delivery_name','$delivery_company','$delivery_street_address','$delivery_city','$delivery_postcode','DO')";
  201. list($fejl,$svar)=explode(chr(9),singleselect($s_id,"box2 as momssats from grupper where art='SM' and kodenr='$debitorgruppe'"));
  202. fwrite($fp,__LINE__." - fejl $fejl, svar $svar\n");
  203. if ($fejl) return ($fejl.chr(9).$svar);
  204. else $momssats=$svar*1;
  205. fwrite($fp,__LINE__." - ordrer (ordrenr,konto_id,kontonr,firmanavn,kontakt,addr1,bynavn,postnr,land,email,lev_kontakt,lev_navn,lev_addr1,lev_bynavn,lev_postnr,art,momssats,kundeordnr) values ('$ordrenr','$ordredate','$konto_id','$kontonr','$billing_company','$billing_name','$billing_street_address','$billing_city','$billing_postcode','$billing_country','$customers_email_address','$delivery_name','$delivery_company','$delivery_street_address','$delivery_city','$delivery_postcode','DO','$momssats','$insert_id')\n");
  206. list($fejl,$svar)=explode(chr(9),singleinsert($s_id,"ordrer (ordrenr,ordredate,konto_id,kontonr,firmanavn,kontakt,addr1,bynavn,postnr,land,email,lev_kontakt,lev_navn,lev_addr1,lev_bynavn,lev_postnr,art,status,momssats,kundeordnr) values ('$ordrenr','$ordredate','$konto_id','$kontonr','$billing_company','$billing_name','$billing_street_address','$billing_city','$billing_postcode','$billing_country','$customers_email_address','$delivery_name','$delivery_company','$delivery_street_address','$delivery_city','$delivery_postcode','DO','2','$momssats','$insert_id')"));
  207. fwrite($fp,__LINE__." - svar $svar\n");
  208. if ($fejl) return ($fejl.chr(9).$svar);
  209. else $ordre_id=$svar;
  210. fwrite($fp,__LINE__." - shop_ordrer (shop_id,saldi_id) values ('$insert_id','$ordre_id')\n");
  211. list($fejl,$svar)=explode(chr(9),singleinsert($s_id,"shop_ordrer (shop_id,saldi_id) values ('$insert_id','$ordre_id')"));
  212. fwrite($fp,__LINE__." - svar $svar\n");
  213. if ($fejl) return('1'.chr(9).$svar);
  214. }
  215. # Tilføjer ordrelinjer
  216. for ($x=1;$x<=$item_quantity;$x++) {
  217. # Tjekker om varerelation eksisterer i Saldi
  218. fwrite($fp,__LINE__." - saldi_id from shop_varer where shop_id='$products_id[$x]'\n");
  219. list($fejl,$svar)=explode(chr(9),singleselect($s_id,"saldi_id from shop_varer where shop_id='$products_id[$x]'"));
  220. fwrite($fp,"svar $svar\n");
  221. if ($fejl) return ($svar);
  222. elseif ($svar) $vare_id[$x]=$svar;
  223. else {
  224. # Tjekker om varenummeret eksisterer i Saldi
  225. fwrite($fp,__LINE__." - id from varer where varenr='$products_model[$x]'\n");
  226. list($fejl,$svar)=explode(chr(9),singleselect($s_id,"id from varer where varenr='$products_model[$x]'"));
  227. fwrite($fp,__LINE__." - svar $svar\n");
  228. if ($fejl) return ($svar);
  229. elseif ($svar) $vare_id[$x]=$svar;
  230. else {
  231. #Hvis varen ikke eksisterer i Saldi oprettes den.
  232. fwrite($fp,__LINE__." - varer (varenr,beskrivelse,salgspris,gruppe) values ('$products_model[$x]','$products_name[$x]','$products_price[$x]','1')\n");
  233. list($fejl,$svar)=explode(chr(9),singleinsert($s_id,"varer (varenr,beskrivelse,salgspris,gruppe) values ('$products_model[$x]','$products_name[$x]','$products_price[$x]','1')"));
  234. fwrite($fp,__LINE__." - svar $svar\n");
  235. if ($fejl) return ('1'.chr(9).$svar);
  236. else $vare_id=$svar;
  237. }
  238. # Og der oprettes relation mellem Saldi & osc vare ID
  239. fwrite($fp,__LINE__." - shop_varer (shop_id,saldi_id) values ('$products_id[$x]','$ordre_id')\n");
  240. list($fejl,$svar)=explode(chr(9),singleinsert($s_id,"shop_varer (shop_id,saldi_id) values ('$products_id[$x]','$ordre_id')"));
  241. fwrite($fp,__LINE__." - svar $svar\n");
  242. if ($fejl) return('1'.chr(9).$svar);
  243. }
  244. fwrite($fp,__LINE__." - Tjekker om varen indeholder varianter\n");
  245. #Tjekker om varen indeholder varianter.
  246. if (count($products_options_values_id[$x])) {
  247. $tmp=count($products_options_values_id[$x]);
  248. for ($y=1;$y<=$tmp;$y++) {
  249. fwrite($fp,__LINE__." - products_options_values_id: ".$products_options_values_id[$x][$y]."\n");
  250. if ($products_options_values_id[$x][$y]) {
  251. fwrite($fp,__LINE__." - id from variant_typer where shop_id='".$products_options_values_id[$x][$y]."'\n");
  252. list($fejl,$svar)=explode(chr(9),singleselect($s_id,"id from variant_typer where shop_id='".$products_options_values_id[$x][$y]."'"));
  253. fwrite($fp,__LINE__." - svar $svar\n");
  254. if ($fejl) return('1'.chr(9).$svar);
  255. else $variant_type_id[$x][$y]=$svar;
  256. }
  257. }
  258. sort($variant_type_id[$x]);
  259. $tmp=count($variant_type_id[$x]);
  260. $variant[$x]=NULL;
  261. for ($y=0;$y<$tmp;$y++) {
  262. ($variant[$x])?$variant[$x].=chr(9).$variant_type_id[$x][$y]:$variant[$x]=$variant_type_id[$x][$y];
  263. }
  264. fwrite($fp,__LINE__." - variant_stregkode from variant_varer where variant_type='$variant[$x]'\n");
  265. list($fejl,$svar)=explode(chr(9),singleselect($s_id,"variant_stregkode from variant_varer where variant_type='$variant[$x]'"),2);
  266. fwrite($fp,__LINE__." - stregkode $svar\n");
  267. if ($fejl) return('1'.chr(9).$svar);
  268. else $stregkode[$x]=$svar;
  269. }
  270. # Ordrelinjen operettes.
  271. fwrite($fp,__LINE__." - \"$ordre_id\",\"$stregkode[$x]\",\"$products_name[$x]\",\"$products_quantity[$x]\",\"$products_price[$x]\",\"$products_tax[$x]\",\"$x\"\n");
  272. list($fejl,$svar)=explode(chr(9),addorderline("$s_id","$ordre_id","$stregkode[$x]","$products_name[$x]","$products_quantity[$x]","$products_price[$x]","$products_tax[$x]","$x"));
  273. fwrite($fp,__LINE__." - svar $svar\n");
  274. if ($fejl) return('1'.chr(9).$svar);
  275. }
  276. return('0'.chr(9).$konto_id.chr(9).$ordre_id);
  277. fclose($fp);
  278. }
  279. }
  280. ?>