public function readBkmv() { //sort $this->sortBkmvFile(); //skip for testing // //new company //get perm from ini //if (substr($line,395,1)=='2') // $encoding="ibm862"; //else $encoding = "windows-1255"; //$encoding="ibm862"; Yii::log('start Openimport', 'info', 'app'); //$bkmv = $yiiBasepath."/files/".$configPath."/openformt/bkmvdata.txt-sorted"; $bkmv = $this->bkmvFile . "-sorted"; $suc = array(); $suc['B110'] = 0; $suc['A100'] = 0; $suc['B100'] = 0; $suc['C100'] = 0; $suc['M100'] = 0; $suc['D110'] = 0; $suc['D120'] = 0; $suc['Z900'] = 0; $analze = array(); $analze['B110'] = 0; $analze['A100'] = 0; $analze['B100'] = 0; $analze['C100'] = 0; $analze['M100'] = 0; $analze['D110'] = 0; $analze['D120'] = 0; $analze['Z900'] = 0; $accType = 200; //DELETE FROM `qwe_docCheques` WHERE 1;DELETE FROM `qwe_docDetails` WHERE 1;DELETE FROM `qwe_accounts` WHERE 1;DELETE FROM `qwe_items` WHERE 1;DELETE FROM `qwe_docs` WHERE 1; if ($fp = fopen($bkmv, 'r')) { while ($line = fgets($fp)) { @($line = iconv($encoding, "UTF-8//IGNORE", $line)); //$line=utf8_encode($line); $type = substr($line, 0, 4); //$obj=$this->readline($line,$type); $obj = true; if (!$obj) { //$suc[$type]--; } else { //foreach ($obj as &$value) // if ($encoding=="ibm862") // $value = iconv("ISO-8859-8", "UTF-8", hebrev(iconv("UTF-8", "ISO-8859-8", $value))); if ($type == 'B110') { //Acc Haeder /* Account Import */ $acc = new Accounts(); $acc->readLine($line, $type); if (isset($this->accTypeIndex[$acc->type])) { $this->accDesc[$acc->type] = $this->accDesc[$acc->type] . "," . $acc->name; } else { $this->accDesc[$acc->type] = $acc->name; $this->accTypeIndex[$acc->type] = $accType; $accType++; } $acc->type = $this->accTypeIndex[$acc->type]; $acc->save(); //get new acc index save old unset($acc); //*/ } if ($type == 'M100') { //Item In Stock $item = new Item(); $item->category_id = 0; $item->parent_item_id = 0; $item->isProduct = 0; $item->profit = 0; $item->stockType = 0; $item->readLine($line, $type); $item->save(); unset($item); //*/ } if ($type == 'C100') { //Doc Haeder //return "done!"; //Yii::app()->end(); //find type //global $DocOpenType; $doc = new Docs(); $doc->readLine($line, $type); $doc->status = 1; //needtoChange //Yii::log($doc,'info','app'); $doc->save(); unset($doc); /* if ((isset($DocOpenType[$obj['doctype']])) && (isset($accIndex[$obj['account']]))){ $obj['doctype']=$DocOpenType[$obj['doctype']]; $doc=new document($obj['doctype']); $stype=$obj['doctype']; foreach($obj as $key=>$value){ $doc->$key=$value;//print "$key <br />"; } $doc->account=$accIndex[$doc->account]; //search for old acc index if (isset($doc->rcptdetials)) unset($doc->rcptdetials); if (isset($doc->docdetials)) unset($doc->docdetials); if($check){ if((strtotime($doc->issue_date)>$begindmy)&&(strtotime($doc->issue_date)<$enddmy)) $docIndex[$stype.$obj["docnum"]]=$doc->newDocument(); //print "we are chking!"; }else{ $docIndex[$stype.$obj["docnum"]]=$doc->newDocument(); } //get new doc index save old unset($doc); }*/ } if ($type == 'D110') { //Doc Detial $docdetial = new Docdetails(); $docdetial->readLine($line, $type); //Yii::log($docdetial,'info','app'); $docdetial->save(); unset($docdetial); /* global $DocOpenType; $stype=$DocOpenType[$obj['doctype']]; if (isset($docIndex[$stype.$obj["num"]])){ $docdetial=new documentDetail; $docdetial->price=$obj['price']; unset($obj['doctype']); unset($obj['price']); foreach($obj as $key=>$value){ $docdetial->{$key}=$value;//print "$key <br />"; } $docdetial->num=$docIndex[$stype.$obj["num"]]; $docdetial->newDetial(); //search for old doc index //die; //update to new index unset($docdetial); }//*/ } if ($type == 'D120') { //Kaballa Detial $rcptdetial = new Doccheques(); $rcptdetial->readLine($line, $type); Yii::log($rcptdetial, 'info', 'app'); $rcptdetial->save(); unset($rcptdetial); /* global $DocOpenType; $stype=$DocOpenType[$obj['doctype']]; if (isset($docIndex[$stype.$obj["refnum"]])){ $rcptdetial=new receiptDetail(); //$stype=$DocOpenType[$obj['doctype']]; $rcptdetial->sum=(float)$obj['sum']; unset($obj['sum']); unset($obj['doctype']); foreach($obj as $key=>$value){ $rcptdetial->$key=$value; } $rcptdetial->refnum=$docIndex[$stype.$obj["refnum"]]; $rcptdetial->newDetial(); //search for old doc index //update to new index unset($rcptdetial); }*/ } if ($type == 'B100') { //Move Recored $transaction = new Transactions(); $transaction->readLine($line, $type); $transaction->save(); //Yii::log($transaction,'info','app'); unset($transaction); /* //print $obj['value'].":".$obj['type']; global $openTransType; if (isset($accIndex[$obj['account']])){ $bsum= $obj['sum']; if($obj['value']==1) $bsum= -1 * $obj['sum']; //print $bsum."<br />\n"; $usum=$bsum*-1; $uaccount=$obj['account1']; $stype=$openTransType[$obj['type']]; unset($obj['sum']); unset($obj['value']); unset($obj['account1']); //adam:! need to reset type of action! $transaction=new transaction; foreach($obj as $key=>$value){ $transaction->$key=$value;//print "$key <br />"; } $transaction->type=$stype; $transaction->sum=$bsum; $transaction->account=$accIndex[$obj['account']]; if($check){ if((strtotime($transaction->date)>$begindmy)&&(strtotime($transaction->date)<$enddmy)){ // "gone"; $transaction->newTransactions(); } //print "gone2"; }else{ //print "gone1"; $transaction->newTransactions(); } unset($transaction); }//*/ } unset($obj); $suc[$type]++; } $analze[$type]++; //if ($analze[$type]>100) break; } Yii::log("End OpenImport", 'info', 'app'); //print_r($docIndex); //end loop //print_r($accIndex); } else { print _("error cant open file!"); } }