Example #1
0
 public function updatei()
 {
     ini_set('max_execution_time', '9999');
     ini_set('memory_limit', '-1');
     $this->load->model('clients/indexmodel', 'modelIndex');
     $this->load->helper('email');
     $sql = 'select DATE(u.date) as date from cemaco_clients.client_update u order by u.date desc LIMIT 0,1';
     $row = $this->db->query($sql)->row();
     if ($row) {
         $dateSoap = str_replace('-', '', $row->date);
     } else {
         $dateSoap = '20140320';
     }
     $sql = $this->db->insert_string('cemaco_clients.client_update', array('items' => 0, 'items2' => 0));
     $this->db->query($sql);
     $idact = $this->db->insert_id();
     $msg = 'La actualización <span class="bold">' . str_pad($idact, 5, "0", STR_PAD_LEFT) . '</span> se realizó <span class="underline">correctamente</span>.';
     $requestParams = array('sFecha_YYYYMMDD' => $dateSoap, 'sAnoSaldo' => substr($dateSoap, 0, 4), 'sMesSaldo' => round(substr($dateSoap, 4, 2)));
     $client = new SoapClient('http://190.171.26.19:82/wsbodas/listabodas.asmx?WSDL', array('soap_version' => SOAP_1_2, 'trace' => 1));
     $response = $client->ObtenerClientes($requestParams);
     $string = $response->ObtenerClientesResult->any;
     $xml = simplexml_load_string($string);
     if (empty($xml->NewDataSet->Table)) {
         $this->session->set_flashdata('returnMessage', $msg);
         redirect('clients/updatem');
     }
     $count = 0;
     $count2 = 0;
     $sqlTxt = "";
     foreach ($xml->NewDataSet->Table as $row) {
         $id = 0;
         if ($row->COD_CLIENTE) {
             $sql = "select id_client as id from cemaco_clients.client where cod_cliente = '{$row->COD_CLIENTE}' LIMIT 0,1";
             $client = $this->db->query($sql)->row();
             if ($client) {
                 $id = $client->id;
             }
         }
         $id_gender = $this->modelIndex->get_gender((string) $row->GENERO);
         $id_civil_status = $this->modelIndex->get_civil_status((string) $row->ESTADO_CIVIL);
         $id_province = $this->modelIndex->get_province((string) $row->PROVINCIA);
         $id_canton = $this->modelIndex->get_canton((string) $row->CANTON);
         $id_district = $this->modelIndex->get_district((string) $row->DISTRITO);
         $birthday = $this->modelIndex->get_birthday2((string) $row->F_NACIMIENTO);
         $pub_tel = $this->modelIndex->get_pub_tel((string) $row->IND_ENV_PUB_TELEF);
         $pub_mail = $this->modelIndex->get_pub_mail((string) $row->IND_ENV_PUB_EMAIL);
         $types = $this->modelIndex->get_types((string) $row->TIPOS_CLIENTE);
         $data = array('cod_cliente' => (string) $row->COD_CLIENTE, 'ididentificacion' => (string) $row->ID_IDENTIFICACION, 'nombre' => mb_ucfirstword((string) $row->NOMBRE), 'apellido1' => mb_ucfirstword((string) $row->APELLIDO1), 'telefono' => (string) $row->TELEFONO, 'celular' => (string) $row->CELULAR, 'acumulados' => abs(round((string) $row->ACUMULADOS, 2)), 'redimidos' => abs(round((string) $row->REDIMIDOS, 2)), 'saldo_cem' => abs(round((string) $row->SALDO_CEM, 2)), 'vencido' => abs(round((string) $row->VENCIDO, 2)), 'acumulados_col' => abs(round((string) $row->ACUMULADOS_COL, 2)), 'redimidos_col' => abs(round((string) $row->REDIMIDOS_COL, 2)), 'saldo_col' => abs(round((string) $row->SALDO_COL, 2)), 'last_cem' => abs(round((string) $row->CEMACOLONES_GEN_ULTIMA_COMPRA, 2)), 'tipos_cliente' => $types, 'f_nacimiento' => (string) $row->F_NACIMIENTO, 'pub_mail' => $pub_mail, 'pub_tel' => $pub_tel, 'birthday' => $birthday, 'id_gender' => $id_gender, 'id_civil_status' => $id_civil_status, 'id_province' => $id_province, 'id_canton' => $id_canton, 'id_district' => $id_district, 'date' => date('Y-m-d'));
         if (isset($row->APELLIDO2)) {
             $data['apellido2'] = mb_ucfirstword((string) $row->APELLIDO2);
         }
         if (isset($row->EMAIL1)) {
             $mail = (string) $row->EMAIL1;
             if (valid_email($mail)) {
                 $data['email1'] = strtolower($mail);
             }
         }
         if ($id) {
             unset($data['date']);
             $sql = $this->db->update_string('cemaco_clients.client', $data, "id_client = '{$id}'");
         } else {
             $sql = $this->db->insert_string('cemaco_clients.client', $data);
         }
         $sqlTxt .= "{$sql}\n";
         $this->db->query($sql);
         if (mysql_affected_rows()) {
             $count2++;
         }
         $count++;
         if (!$pub_mail && isset($data['email1'])) {
             $sql = "INSERT IGNORE INTO cemaco_clients.unsuscribe (mail) values('{$data['email1']}') ";
             $this->db->query($sql);
         }
     }
     $sql = $this->db->update_string('cemaco_clients.client_update', array('items' => $count, 'items2' => $count2, 'log' => $sqlTxt), "id_update = '{$idact}'");
     $this->db->query($sql);
     $this->session->set_flashdata('returnMessage', $msg);
     redirect('clients/updatem');
 }