public function processEditAction()
 {
     $params = $this->_getParam('pharmacy');
     if (isset($params['preferred'])) {
         $params['preferred'] = 1;
     }
     $pharmacy = new Pharmacy();
     $pharmacy->populateWithArray($params);
     //$pharmacy->pharmacyId = Pharmacy::generateGUID();
     $pharmacy->LastModifierDate = date('Y-m-d H:i:s');
     $pharmacy->persist();
     $data['pharmacyId'] = $pharmacy->pharmacyId;
     $json = Zend_Controller_Action_HelperBroker::getStaticHelper('json');
     $json->suppressExit = true;
     $json->direct($data);
 }
Exemplo n.º 2
0
 public static function loadPharmacy($filename)
 {
     trigger_error('before loading pharmacies: ' . calcTS(), E_USER_NOTICE);
     set_time_limit(300);
     // 5 minutes
     $filename = sys_get_temp_dir() . DIRECTORY_SEPARATOR . preg_replace('/.*(\\/|\\ee)/', '', $filename);
     $pharmDataTmp = fopen($filename, 'r');
     $db = Zend_Registry::get('dbAdapter');
     $sqlSelect = $db->select()->from('pharmacies', array('pharmacyId', 'NCPDPID', 'preferred'));
     $pharmacies = array();
     if ($rows = $db->fetchAll($sqlSelect)) {
         foreach ($rows as $row) {
             $pharmacies[$row['NCPDPID']] = array('pharmacyId' => $row['pharmacyId'], 'preferred' => $row['preferred']);
         }
     }
     fseek($pharmDataTmp, 0);
     $counter = 0;
     while ($line = fgets($pharmDataTmp)) {
         $pharmacy = array();
         $pharmacy['NCPDPID'] = substr($line, 0, 7);
         $pharmacy['StoreNumber'] = substr($line, 7, 35);
         $pharmacy['ReferenceNumberAlt1'] = substr($line, 42, 35);
         $pharmacy['ReferenceNumberAlt1Qualifier'] = substr($line, 77, 3);
         $pharmacy['StoreName'] = substr($line, 80, 35);
         $pharmacy['AddressLine1'] = substr($line, 115, 35);
         $pharmacy['AddressLine2'] = substr($line, 150, 35);
         $pharmacy['City'] = substr($line, 185, 35);
         $pharmacy['State'] = substr($line, 220, 2);
         $pharmacy['Zip'] = substr($line, 222, 11);
         $pharmacy['PhonePrimary'] = substr($line, 233, 25);
         $pharmacy['Fax'] = substr($line, 258, 25);
         $pharmacy['Email'] = substr($line, 283, 80);
         $pharmacy['PhoneAlt1'] = substr($line, 363, 25);
         $pharmacy['PhoneAlt1Qualifier'] = substr($line, 388, 3);
         $pharmacy['PhoneAlt2'] = substr($line, 391, 25);
         $pharmacy['PhoneAlt2Qualifier'] = substr($line, 416, 3);
         $pharmacy['PhoneAlt3'] = substr($line, 419, 25);
         $pharmacy['PhoneAlt3Qualifier'] = substr($line, 444, 3);
         $pharmacy['PhoneAlt4'] = substr($line, 447, 25);
         $pharmacy['PhoneAlt4Qualifier'] = substr($line, 472, 3);
         $pharmacy['PhoneAlt5'] = substr($line, 475, 25);
         $pharmacy['PhoneAlt5Qualifier'] = substr($line, 500, 3);
         $pharmacy['ActiveStartTime'] = substr($line, 503, 22);
         $pharmacy['ActiveEndTime'] = substr($line, 525, 22);
         $pharmacy['ServiceLevel'] = substr($line, 547, 5);
         $pharmacy['PartnerAccount'] = substr($line, 552, 35);
         $pharmacy['LastModifiedDate'] = substr($line, 587, 22);
         $pharmacy['TwentyFourHourFlag'] = substr($line, 609, 1);
         $pharmacy['Available CrossStreet'] = substr($line, 610, 35);
         $pharmacy['RecordChange'] = substr($line, 645, 1);
         $pharmacy['OldServiceLevel'] = substr($line, 646, 5);
         $pharmacy['TextServiceLevel'] = substr($line, 651, 100);
         $pharmacy['TextServiceLevelChange'] = substr($line, 751, 100);
         $pharmacy['Version'] = substr($line, 851, 5);
         $pharmacy['NPI'] = substr($line, 856, 10);
         $data = array();
         foreach ($pharmacy as $key => $value) {
             $data[$key] = trim($value);
         }
         $p = new Pharmacy();
         $p->_shouldAudit = false;
         $p->populateWithArray($data);
         if (isset($pharmacies[$p->NCPDPID])) {
             $p->pharmacyId = $pharmacies[$p->NCPDPID]['pharmacyId'];
             $p->preferred = $pharmacies[$p->NCPDPID]['preferred'];
         }
         //$p->populatePharmacyIdWithNCPDPID();
         $p->persist();
         $counter++;
     }
     fclose($pharmDataTmp);
     unlink($filename);
     trigger_error('Number of rows updated: ' . $counter, E_USER_NOTICE);
     trigger_error('after loading pharmacies: ' . calcTS(), E_USER_NOTICE);
     return $counter;
 }