Advertisement
justhrun

curl->bca-cron.php

Jul 28th, 2014
433
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.52 KB | None | 0 0
  1. #!/usr/local/bin/php
  2. <?php
  3.  
  4.         $MYSQL=false;
  5. // mandatory utk php 4.5 and above
  6.         date_default_timezone_set('Asia/Jakarta');
  7.  
  8. // utk manipulasi & validasi tanggal
  9.         define('JANUARI',1);
  10.         define('DESEMBER',12);
  11.  
  12.         $pastday = 7;                   // cek mutasi dari $pastday hari lalu sampai hari ini
  13.  
  14. // userid & PIN BCA
  15.         define('USERID','blablaba0123');
  16.         define('PASSWD','345678');
  17.  
  18. if($MYSQL) {
  19. // config mysql
  20.         define('DB_HOSTNAME', 'localhost');
  21.         define('DB_USERNAME', 'userdbnya');
  22.         define('DB_PASSWORD', 'passwdnya');
  23.         define('DB_DATABASE', 'dbnamenya');
  24.         $mysqlId = mysql_connect(DB_HOSTNAME,DB_USERNAME,DB_PASSWORD);
  25.         mysql_select_db(DB_DATABASE,$mysqlId);
  26.  
  27. // baca dulu last_id di table
  28.         $result = mysql_query("select max(id) from `mbank_bca`",$mysqlId);
  29.         list($last_id) = mysql_fetch_row($result);
  30.         mysql_free_result($result);
  31.  
  32. // kalo last_id positif => table udah ada isinya
  33. // baca dulu saldo terakhir
  34.         $isFirst = true;
  35.         $last_saldo = 0;
  36.         if($last_id) {
  37.                 $result = mysql_query("select tanggal,saldo from `mbank_bca` where id='$last_id'",$mysqlId);
  38.                 list($last_tanggal,$last_saldo) = mysql_fetch_row($result);
  39.                 mysql_free_result($result);
  40.                 $last_saldo = (int)$last_saldo;         // integer aja dech
  41.                 $isFirst = false;
  42.         }
  43. }
  44.  
  45. // penetapan tanggal from-to mutasi
  46.         if($isFirst) {          // kalo table msh kosong, ambil dr tanggal 1
  47.                 $from_date = date("Y-m-01");
  48.         } else {
  49.                 $from_date = date("Y-m-d",strtotime("-$pastday day"));
  50.         }
  51.         $to_date = date("Y-m-d");
  52.  
  53. //  ###### ATO BATAS MUTASI DITETAPKAN SECARA MANUAL
  54. //      $from_date = "2014-04-10";
  55. //      $to_date = "2014-04-20";
  56.  
  57. // load Class
  58.         include('bca.class.php');
  59.         $bca = new bankBCA;
  60.         $bca->userid = USERID;
  61.         $bca->password = PASSWD;
  62.  
  63.         $insert = 0;
  64.         $isbank = true;
  65. // ################ START ACTION ################# \\
  66. if($bca->login()){
  67.         $mutasi = $bca->mutasi($from_date,$to_date);
  68.         $bca->logout();
  69.  
  70.   if($MYSQL) {
  71.         $nrow = count($mutasi);
  72.         if(!$nrow) {    // gk dpt hasil mutasi
  73.                 mysql_query("INSERT INTO mbank_log SET id=NULL, tanggal=NOW(), keterangan = 'Hasil Check Mutasi Zero'",$mysqlId);
  74.                 $isbank = false;
  75.         }
  76.  
  77.         if($isbank) {
  78.                 $new_saldo = (int)$mutasi[$nrow-1]['saldo'];
  79.                 if($new_saldo == $last_saldo) {         // saldo gk berubah
  80.                         mysql_query("INSERT INTO mbank_log SET id=NULL, tanggal=NOW(), keterangan = 'Tidak Ada Perubahan Saldo'",$mysqlId);
  81.                         $isbank = false;
  82.                 }
  83.         }
  84.  
  85.         if($isbank) {
  86.                 // Lets Go Bussiness
  87.                 for($i=0;$i<count($mutasi);$i++) {
  88.                         $tanggal = $mutasi[$i]['tanggal'];
  89.                         $keterangan = $mutasi[$i]['keterangan'];
  90.                         // $cabang = $mutasi[$i]['cabang'];
  91.                         $jumlah = (float)$mutasi[$i]['jumlah'];
  92.                         $jenis = $mutasi[$i]['jenis'];
  93.                         $saldo = (float)$mutasi[$i]['saldo'];
  94.                         if($jenis=='DB') {
  95.                                 $debet = $jumlah; $credit = 0;
  96.                                 $lmutasi = true;
  97.                         } else {
  98.                                 $debet = 0; $credit = $jumlah;
  99.                                 $lmutasi = false;
  100.                         }
  101.  
  102.                         // cek & manipulasi tanggal
  103.                         if($tanggal=="PEND") {          // pending
  104.                                 $pending = true;
  105.                                 $tanggal = "0000-00-00";
  106.                         } else {
  107.                                 $pending = false;
  108.                                 $bln_ini = date("n");
  109.                                 $thn_ini = $thn = date("Y");
  110.  
  111.                                 list($tgl,$bln) = explode("/",$tanggal);
  112.                                 $tgl = $tgl*1;
  113.                                 $bln = $bln*1;
  114.  
  115.                                 // bila cek mutasi xx/Desember/TahunA s/d yy/Januari/TahunB
  116.                                 //   maka TahunA = TahunB - 1
  117.                                 if($bln_ini==JANUARI && $bln==DESEMBER) {
  118.                                         $thn--;
  119.                                 }
  120.                                 $tanggal = date("Y-m-d",mktime(0,0,0,$bln,$tgl,$thn));
  121.                         }
  122.  
  123.                         if($isFirst) {          // kalo table kosong gk usah check
  124.                                 InsertDATA($tanggal,$keterangan,$debet,$credit,$saldo,$mysqlId);
  125.                                 $insert++;
  126.                         } else {
  127.                                 // cek dulu, agar gk ada data ganda
  128.                                 $query="select id,tanggal from `mbank_bca` WHERE (tanggal>='$from_date' OR tanggal='0000-00-00') AND saldo='$saldo' ";
  129.                                 if($lmutasi) {
  130.                                         $query .= "AND debet='$debet'";
  131.                                 } else {
  132.                                         $query .= "AND credit='$credit'";
  133.                                 }
  134.                                 $result = mysql_query($query,$mysqlId);
  135.                                 if($result) {
  136.                                         if(mysql_num_rows($result)) {   // udah ada
  137.                                                 list($id,$tgl) = mysql_fetch_row($result);
  138.                                                 mysql_free_result($result);
  139.                                                 if($tgl="0000-00-00" && !$pending) {            // data pending & new data !pending, update sesuai tgl mutasi
  140.                                                         mysql_query("UPDATE mbank_bca SET tanggal='$tanggal' WHERE id='$id'",$mysqlId);
  141.                                                         $insert++;
  142.                                                 }
  143.                                         } else {
  144.                                                 InsertDATA($tanggal,$keterangan,$debet,$credit,$saldo,$mysqlId);
  145.                                                 $insert++;
  146.                                         }
  147.                                 } else {
  148.                                         InsertDATA($tanggal,$keterangan,$debet,$credit,$saldo,$mysqlId);
  149.                                         $insert++;
  150.                                 }
  151.  
  152.                         }
  153.  
  154.                 }
  155.  
  156.                 mysql_query("INSERT INTO mbank_log SET id=NULL,tanggal=NOW(),keterangan='Sukses dengan $insert INSERT &/ UPDATE'",$mysqlId);
  157.         }
  158.         mysql_close($mysqlId);
  159.  
  160.   } else {
  161.         print_r($mutasi);
  162.   }
  163.  
  164. } else {                                // ERROR LOGIN
  165.         if($MYSQL) {
  166.                 mysql_query("INSERT INTO mbank_log SET id=NULL, tanggal=NOW(), keterangan = 'Error Login Internet Banking / Wait 10mnt'",$mysqlId);
  167.                 mysql_close($mysqlId);
  168.         } else {
  169.                 echo "Error Login Internet Banking / Wait 10mnt\n";
  170.         }
  171. }
  172.  
  173.  
  174. function InsertDATA($tgl,$ket,$dbt,$cdt,$sal,$mysqlId) {
  175.         $query="INSERT INTO mbank_bca SET tanggal='$tgl',keterangan='$ket',debet='$dbt',credit='$cdt',saldo='$sal'";
  176.         mysql_query($query,$mysqlId);
  177. }
  178.  
  179. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement