database))); $lprefix = preg_match('/(lsg\.php|lhk.php)$/', $this->baseURL) ? 'l' : ''; // dump old db -> jsondecode -> get file contents ~/Dropbox/olddb...... [TBD] // get Netsuite_Accounts from SG and HK and merge // // review the "View Financial Report" to see how it's pulling // the Balances for the internal accounting accounts // // // DB_DataObject::debugLevel(1); //DB_DataObject::DebugLevel(1); $db = DB_DataObject::factory('vendinfo'); $db->selectAdd(); /* currtocurr( apopen_curr_id, getcurrid('HKD') , CASE WHEN (apopen_doctype IN ('C', 'R')) THEN (apopen_amount - apopen_paid) * -1.0 ELSE (apopen_amount - apopen_paid) END, apopen_distdate ) as apopen_remaining_hkd "); */ //DB_DataObject::DebugLevel(1); $db->selectAdd(" vend_number, ROUND( (SELECT SUM( currtocurr( apopen_curr_id, getcurrid('HKD' ) , CASE WHEN (apopen_doctype IN ('C', 'R')) THEN (apopen_amount - apopen_paid) * -1.0 ELSE (apopen_amount - apopen_paid) END , apopen_distdate ) ) FROM apopen WHERE apopen_vend_id = vend_id AND apopen_open ), 3) as balance "); /* $db->selectAdd(" vend_number, (SELECT COALESCE(SUM(currtocurr( apopen_curr_id, getcurrid('HKD' ) , open_amount, NOW()::date )),0) FROM (SELECT apopen_curr_id, COALESCE( SUM( CASE WHEN (apopen_doctype IN ('C', 'R')) THEN (apopen_amount - apopen_paid) * -1.0 ELSE (apopen_amount - apopen_paid) END ), 0 ) AS open_amount FROM apopen WHERE apopen_vend_id = vend_id AND apopen_open GROUP BY apopen_curr_id ) subsel ) as balance */ $db->orderBy('vend_number ASC'); $xdb =$db->fetchAll('vend_number', 'balance'); //ksort($xtd); // exit; if ($sd != 'HK') { // we only report on HK data.. echo json_encode($xdb); exit; } $hkdata = $xdb; $sgdata = (array) json_decode(file_get_contents("http://localhost/xtuple/{$lprefix}sg.php/Xtuple/VerifyAP")); //print_R($sgdata);exit; //echo '
' ;print_R( $hkdata);
        
       //  echo '
';var_dump( $sgdata );exit;
        // at this point we
        $old = $this->oldParse('HK');
        //echo"
"; print_r($old);
        
        foreach($this->oldParse('SG') as $k =>$v) {
            $old[$k] = $v;
        }
        
        
          
        //echo '
';
        //var_dump($old);
       //(int) print_r(array_keys($sgdata));
       // print_r(array_keys($old));
        //exit;
        $historyfor = array();
        header('Content-type: text/csv');
        header( 'Content-Disposition: attachment;filename=APsummary.csv');
        $fh = fopen('php://output','w');
        
        fputcsv($fh, array("Customer",  '','',"NETSUITE", "HK", "SG", "difference"));
        foreach($old as $k=>$v) {
            $hk = isset($hkdata[$k]) ? $hkdata[$k] : 0;
            $sg = isset($sgdata[$k]) ? $sgdata[$k] : 0;
            
            if ( ( ($hk + $sg) - $v) == 0.0) {
                continue;
            }
            
            if (abs(( ($hk + $sg) - $v)) > 1.5) {
                $historyfor[$k] = $v;
            } else {
                continue;
            }
            
            fputcsv($fh, array(
                $k,
                '','',
                $v,
                $hk,
                $sg,
                ($hk + $sg) - $v
            ));
        }
        
        
        
        
        
        // aropen  - columns... docdate, doctype, docnumber,amount, paid,
        $max = 999;
        $i = 0;
        foreach($historyfor as $vend=>$expect) {
            $i++;
            if ($i > $max) {
                break;
            }
            $args = $this->toParams(array(
                'query[vend_number]'=> trim($vend),
                 'query[in_currency]'=> 'HKD', 
                'sort'=>'apopen_docdate,apopen_id',
                'dir'=>'ASC',
                
                
                'csvCols[0]' => 'apopen_docdate',
                'csvCols[1]' => 'apopen_doctype',
                'csvCols[2]' => 'apopen_docnumber_r',
                'csvCols[3]' => 'apopen_amount_hkd',
                'csvCols[4]' => 'apopen_paid_hkd',
                'csvCols[5]' => 'apopen_remaining_hkd',
                'csvCols[6]' => 'apopen_running_hkd',
                 
                'csvTitles[0]' => 'Date',
                'csvTitles[1]' => 'Type',
                'csvTitles[2]' => 'Doc no.',
                'csvTitles[3]' => 'Amount',
                'csvTitles[4]' => 'Paid',
                'csvTitles[5]' => 'Outstanding',
                'csvTitles[6]' => 'Running',
                'start' => 0,
                'limit' => 800
                
            ));
            
            //fwrite($fh, "\n\n\"http://www.bloomandgrowdirect.com/xtuple/{$lprefix}hk.php/Roo/apopen?$args\"\n");
            //exit;
            // fwrite($fh, "\n\n\"http://www.bloomandgrowdirect.com/xtuple/{$lprefix}sg.php/Roo/apopen?$args\"\n");
            $hk = isset($hkdata[$vend]) ? $hkdata[$vend] : 0;
            $sg = isset($sgdata[$vend]) ? $sgdata[$vend] : 0;
            
            fwrite($fh, "\n\n-- ". $vend ." ,,Expecting:, $expect, HK:, $hk, SG: $sg\n");
                       
                       
            fwrite($fh, file_get_contents("http://localhost/xtuple/{$lprefix}hk.php/Roo/apopen?$args"));
            fwrite($fh, file_get_contents("http://localhost/xtuple/{$lprefix}sg.php/Roo/apopen?$args"));
        }
        //echo '
';
        //print_R($old);
        //exit;
        
        
        exit;
        
        
        
        
        
        
        
        
        
        
        
    }
    function oldParse($cn)
    {
        $har = explode('/', realpath(__FILE__));
        $home = '/home/'. $har[2];
        $fn = "$home/Dropbox/xtuple_working/old_database_snapshot/$cn/Netsuite_Vendor.sql.json.all";
        $ar = file($fn);
        $ret = array();
        foreach($ar as $i=>$l) {
            if (!$i) continue;
            $line = json_decode($l);
         
            $ret[strtoupper($line->entityId)] =    $line->balance;
        }
        return $ret;
         

        
    }
    
}