4 require_once 'Pman/Roo.php';
6 class Pman_Xtuple_Import_VendAddrInfo extends Pman_Roo
11 if (HTML_FlexyFramework::get()->cli) {
14 return parent::getAuth();
21 PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array($this, 'onPearError'));
23 $this->sessionState(0); // turn off the session..
25 $img = DB_DataObject::Factory('images');
28 'ontable' => 'ipshead'
30 $img->onUpload(false);
32 require_once 'File/Convert.php';
33 $fc = new File_Convert($img->getStoreName(), $img->mimetype );
34 $csv = $fc->convert('text/csv');
36 $this->importCsv($csv);
38 function importCsv($csv)
41 ini_set('memory_limit', '1024M');
43 ini_set("auto_detect_line_endings", true);
45 if(empty($_REQUEST['vend_id'])){
46 $this->jerr('Missing vendor');
49 $vend = DB_DataObject::factory('vendinfo');
50 if(!$vend->get($_REQUEST['vend_id'])){
51 $this->jerr('Invalid vendor');
54 $fh = fopen($csv, 'r');
56 $this->jerr("invalid file");
60 'CODE', 'DISTRICT2_CHI', 'DISTRICT2_ENG', 'CHI ADDRESS', 'ENG ADDRESS',
66 while(false !== ($n = fgetcsv($fh,10000, ',', '"'))) {
71 $cols[] = strtoupper(trim($k));
77 if (!in_array($r,$cols)) {
84 foreach($cols as $i=>$k) {
91 $this->jerr("could not find a row with " . implode(' / ', $req));
99 foreach($rows as $row){
100 $vendaddrinfo = DB_DataObject::factory('vendaddrinfo');
101 if($vendaddrinfo->get('vendaddr_code', $row['CODE'])){
105 $addr = DB_DataObject::factory('addr');
106 $addr->setFrom(array(
107 'addr_active' => true,
108 'addr_city' => $row['DISTRICT2_ENG'],
109 'addr_line1' => $row['ENG ADDRESS'],
110 'addr_line2' => $row['CHI ADDRESS'],
116 $errors[] = $row['CODE'];
120 $vendaddrinfo = DB_DataObject::factory('vendaddrinfo');
121 $vendaddrinfo->setFrom(array(
122 'vendaddr_vend_id' => $vend->pid(),
123 'vendaddr_code' => $row['CODE'],
124 'vendaddr_name' => $row['CODE'],
125 'vendaddr_addr_id' => $addr->pid(),
126 'vendaddr_taxzone_id' => $vend->vend_taxzone_id
129 $vendaddrinfo->insert();
131 if(!$vendaddrinfo->vendaddr_id){
132 $errors[] = $row['CODE'];
139 $this->jerr("Below code got error : \n" . implode("\n", $errors));
142 $this->jok('data imported successfully! total : ' . $count);