public function importar_exec2($idempresa, $idsucursal, $archivo) { $this->load->model("modcliente"); $this->load->model("modgenerador"); $this->load->model("modempresa"); $this->load->model("modsucursal"); $this->load->model("modcatalogo"); $this->load->model("modfacturacion"); $archivo = "./project_files/files/upload/{$archivo}"; if (file_exists($archivo)) { $resultados = array("otros" => array()); $doc = new DOMDocument("1.0", "utf-8"); $doc->load($archivo); $clientes = array(); foreach ($doc->getElementsByTagName("hoja") as $hoja) { //$hoja=new DOMElement(""); switch (strtoupper($hoja->getAttribute("nombre"))) { case "CLIENTES": foreach ($hoja->getElementsByTagName("fila") as $fila) { //$fila=new DOMElement(""); $objeto = new Modcliente(); $emp = new Modempresa(); $suc = new Modsucursal(); $fac = new Modfacturacion(); $errores = array(); $auxidemp = 0; $auxnoctetmp = ""; foreach ($fila->getElementsByTagName("celda") as $celda) { //$celda=new DOMElement(""); switch (strtoupper($celda->getAttribute("columna"))) { case "A": $aux = $emp->getFromCampo("razonsocial", $celda->nodeValue); if ($aux !== false && $aux[0]["idempresa"] > 0) { $auxidemp = $aux[0]["idempresa"]; } else { array_push($errores, "No encontrĂ³ la empresa"); } break; case "B": $aux = $suc->getFromCampo($auxidemp, "nombre", $celda->nodeValue); if ($aux !== false && $aux[0]["idsucursal"] > 0) { $objeto->setIdsucursal($aux[0]["idsucursal"]); } else { array_push($errores, "No encontrĂ³ la sucursal"); } break; case "C": $auxnoctetmp = $celda->nodeValue; break; case 'D': $objeto->setRazonsocial($celda->nodeValue); break; case 'E': $objeto->setRfc($celda->nodeValue); break; case 'F': $objeto->setGiro($celda->nodeValue); break; case 'G': $objeto->setVendedor($this->modcatalogo->getIdOption(4, $celda->nodeValue)); break; case 'H': $objeto->setAfiliacion($celda->nodeValue); break; case 'I': $objeto->setStatus($this->modcatalogo->getIdOption(13, $celda->nodeValue)); break; case 'J': $fecha = $celda->nodeValue; $fecha = substr($fecha, 1); $fecha = substr($fecha, 0, strlen($fecha) - 1); $objeto->setFechacontratoinicio(DateToMySQL($fecha)); break; case 'K': $fecha = $celda->nodeValue; $fecha = substr($fecha, 1); $fecha = substr($fecha, 0, strlen($fecha) - 1); $objeto->setFechacontratofin(DateToMySQL($fecha)); break; case 'L': $fecha = $celda->nodeValue; $fecha = substr($fecha, 1); $fecha = substr($fecha, 0, strlen($fecha) - 1); $objeto->setFechaserviciosinicio(DateToMySQL($fecha)); break; case 'M': $fecha = $celda->nodeValue; $fecha = substr($fecha, 1); $fecha = substr($fecha, 0, strlen($fecha) - 1); $objeto->setFechaserviciosfin(DateToMySQL($fecha)); break; case 'N': $objeto->setCalle($celda->nodeValue); break; case 'O': $objeto->setNumexterior($celda->nodeValue); break; case 'P': $objeto->setNuminterior($celda->nodeValue); break; case 'Q': $objeto->setColonia($celda->nodeValue); break; case 'R': $objeto->setMunicipio($celda->nodeValue); break; case 'S': $objeto->setEstado($celda->nodeValue); break; case 'T': $objeto->setCp($celda->nodeValue); break; case 'U': $objeto->setReferencias($celda->nodeValue); break; case 'V': $objeto->setRepresentante($celda->nodeValue); break; case 'W': $objeto->setRepresentantecargo($celda->nodeValue); break; case 'X': $objeto->setRepresentanteemail($celda->nodeValue); break; case 'Y': $objeto->setRepresentantetelefono($celda->nodeValue); break; case 'Z': $objeto->setRepresentanteextencion($celda->nodeValue); break; case 'AA': $objeto->setRepresentantetelefono2($celda->nodeValue); break; case 'AB': $objeto->setRepresentanteextension2($celda->nodeValue); break; case 'AC': $objeto->setObservaciones($celda->nodeValue); break; case 'AD': $fac->setTiposervicio($this->modcatalogo->getIdOption(5, $celda->nodeValue)); break; case 'AE': $fac->setTipocobro($this->modcatalogo->getIdOption(6, $celda->nodeValue)); break; case 'AF': $fac->setPrecio($celda->nodeValue); break; case 'AG': $fac->setKilosintegrados($celda->nodeValue); break; case 'AH': $fac->setKiloexcedido($celda->nodeValue); break; case 'AI': $objeto->setFacturaxgenerador(strtoupper(trim($celda->nodeValue)) == "SI" ? 1 : 0); break; case 'AJ': $objeto->setOrdencompra(strtoupper(trim($celda->nodeValue)) == "SI" ? 1 : 0); break; case 'AK': $objeto->setDesglosemanifiestos(strtoupper(trim($celda->nodeValue)) == "SI" ? 1 : 0); break; case 'AL': $objeto->setLeyendas($celda->nodeValue); break; case 'AM': $objeto->setDiascredito($this->modcatalogo->getIdOption(7, $celda->nodeValue)); break; case 'AN': $objeto->setCobranzacontacto($celda->nodeValue); break; case 'AO': $objeto->setCobranzaemail($celda->nodeValue); break; case 'AP': $objeto->setCobranzatelefono($celda->nodeValue); break; case 'AQ': $objeto->setCobranzaextension($celda->nodeValue); break; case 'AR': $objeto->setCobranzatelefono2($celda->nodeValue); break; case 'AS': $objeto->setCobranzaextension2($celda->nodeValue); break; case 'AT': $objeto->setCobranzaobservaciones($celda->nodeValue); break; case 'AU': $objeto->setCobranzacalle($celda->nodeValue); break; case 'AV': $objeto->setCobranzanumexterior($celda->nodeValue); break; case 'AW': $objeto->setCobranzanuminterior($celda->nodeValue); break; case 'AX': $objeto->setCobranzacolonia($celda->nodeValue); break; case 'AY': $objeto->setCobranzamunicipio($celda->nodeValue); break; case 'AZ': $objeto->setCobranzaestado($celda->nodeValue); break; case 'BA': $objeto->setCobranzacp($celda->nodeValue); break; case 'BB': $objeto->setReferenciabancaria($celda->nodeValue); break; } } $fac->addToDatabase(); if ($fac->getIdfacturacion() == 0 || $fac->getIdfacturacion() == "") { array_push($errores, "No se almacenaron los elementos de facturacion"); } else { $objeto->setFacturaciones($fac->getIdfacturacion()); } $objeto->setIdentificador($objeto->nextIdentificador($objeto->getIdsucursal())); $objeto->setFechaalta(Today()); $objeto->addToDatabase(); if ($objeto->getIdcliente() == 0 || $objeto->getIdcliente() == "") { array_push($errores, "No se almacenaron los datos del cliente"); } $clientes[$auxnoctetmp] = array("tmpcte" => $auxnoctetmp, "razonsocial" => $objeto->getRazonsocial(), "idcliente" => $objeto->getIdcliente(), "identificador" => $objeto->getIdentificador(), "errores" => $errores, "generadores" => array()); } break; case "GENERADORES": foreach ($hoja->getElementsByTagName("fila") as $fila) { //$fila=new DOMElement(""); $objeto = new Modgenerador(); $fac = new Modfacturacion(); $errores = array(); $auxnoctetmp = ""; foreach ($fila->getElementsByTagName("celda") as $celda) { //$celda=new DOMElement(""); switch (strtoupper($celda->getAttribute("columna"))) { case 'A': $auxnoctetmp = $celda->nodeValue; if (!isset($clientes[$auxnoctetmp])) { array_push($errores, "No se encontrĂ³ la instancia del cliente"); } else { $objeto->setIdcliente($clientes[$auxnoctetmp]["idcliente"]); } break; case 'B': $objeto->setRazonsocial($celda->nodeValue); break; case 'C': $objeto->setRfc($celda->nodeValue); break; case 'D': $objeto->setNumregamb($celda->nodeValue); break; case 'E': $objeto->setFrecuencia($this->modcatalogo->getIdOption(3, $celda->nodeValue)); break; case 'F': $objeto->setActivo(strtoupper(trim($celda->nodeValue)) == "SI" ? 1 : 0); break; case 'G': $fecha = $celda->nodeValue; $fecha = substr($fecha, 1); $fecha = substr($fecha, 0, strlen($fecha) - 1); $objeto->setHorarioinicio($fecha); break; case 'H': $fecha = $celda->nodeValue; $fecha = substr($fecha, 1); $fecha = substr($fecha, 0, strlen($fecha) - 1); $objeto->setHorariofin($fecha); break; case 'I': $fecha = $celda->nodeValue; $fecha = substr($fecha, 1); $fecha = substr($fecha, 0, strlen($fecha) - 1); $objeto->setHorarioinicio2($fecha); break; case 'J': $fecha = $celda->nodeValue; $fecha = substr($fecha, 1); $fecha = substr($fecha, 0, strlen($fecha) - 1); $objeto->setHorariofin2($fecha); break; case 'K': $objeto->setServiciolunes(strtoupper(trim($celda->nodeValue)) == "SI" ? 1 : 0); break; case 'L': $objeto->setServiciomartes(strtoupper(trim($celda->nodeValue)) == "SI" ? 1 : 0); break; case 'M': $objeto->setServiciomiercoles(strtoupper(trim($celda->nodeValue)) == "SI" ? 1 : 0); break; case 'N': $objeto->setServiciojueves(strtoupper(trim($celda->nodeValue)) == "SI" ? 1 : 0); break; case 'O': $objeto->setServicioviernes(strtoupper(trim($celda->nodeValue)) == "SI" ? 1 : 0); break; case 'P': $objeto->setServiciosabado(strtoupper(trim($celda->nodeValue)) == "SI" ? 1 : 0); break; case 'Q': $objeto->setServiciodomingo(strtoupper(trim($celda->nodeValue)) == "SI" ? 1 : 0); break; case 'R': $objeto->setCalle($celda->nodeValue); break; case 'S': $objeto->setNumexterior($celda->nodeValue); break; case 'T': $objeto->setNuminterior($celda->nodeValue); break; case 'U': $objeto->setColonia($celda->nodeValue); break; case 'V': $objeto->setMunicipio($celda->nodeValue); break; case 'W': $objeto->setEstado($celda->nodeValue); break; case 'X': $objeto->setCp($celda->nodeValue); break; case 'Y': $objeto->setReferencias($celda->nodeValue); break; case 'Z': $objeto->setRepresentante($celda->nodeValue); break; case 'AA': $objeto->setRepresentantecargo($celda->nodeValue); break; case 'AB': $objeto->setRepresentanteemail($celda->nodeValue); break; case 'AC': $objeto->setRepresentantetelefono($celda->nodeValue); break; case 'AD': $objeto->setRepresentanteextension($celda->nodeValue); break; case 'AE': $objeto->setRepresentantetelefono2($celda->nodeValue); break; case 'AF': $objeto->setCobranzaextension2($celda->nodeValue); break; case 'AG': $objeto->setObservaciones($celda->nodeValue); break; case 'AH': $fac->setTiposervicio($this->modcatalogo->getIdOption(5, $celda->nodeValue)); break; case 'AI': $fac->setTipocobro($this->modcatalogo->getIdOption(6, $celda->nodeValue)); break; case 'AJ': $fac->setPrecio($celda->nodeValue); break; case 'AK': $fac->setKilosintegrados($celda->nodeValue); break; case 'AL': $fac->setKiloexcedido($celda->nodeValue); break; case 'AM': $objeto->setOrdencompra(strtoupper(trim($celda->nodeValue)) == "SI" ? 1 : 0); break; case 'AN': $objeto->setDesglosemanifiestos(strtoupper(trim($celda->nodeValue)) == "SI" ? 1 : 0); break; case 'AO': $objeto->setLeyendas($celda->nodeValue); break; case 'AP': $objeto->setCobranzacontacto($celda->nodeValue); break; case 'AQ': $objeto->setCobranzaemail($celda->nodeValue); break; case 'AR': $objeto->setCobranzatelefono($celda->nodeValue); break; case 'AS': $objeto->setCobranzaextension($celda->nodeValue); break; case 'AT': $objeto->setCobranzatelefono2($celda->nodeValue); break; case 'AU': $objeto->setRepresentanteextension2($celda->nodeValue); break; case 'AV': $objeto->setCobranzaobservaciones($celda->nodeValue); break; case 'AW': $objeto->setCobranzacalle($celda->nodeValue); break; case 'AX': $objeto->setCobranzanumexterior($celda->nodeValue); break; case 'AY': $objeto->setCobranzanuminterior($celda->nodeValue); break; case 'AZ': $objeto->setCobranzacolonia($celda->nodeValue); break; case 'BA': $objeto->setCobranzamunicipio($celda->nodeValue); break; case 'BB': $objeto->setCobranzaestado($celda->nodeValue); break; case 'BC': $objeto->setCobranzacp($celda->nodeValue); break; case 'BD': $objeto->setGiro($celda->nodeValue); break; } } $fac->addToDatabase(); if ($fac->getIdfacturacion() == 0 || $fac->getIdfacturacion() == "") { array_push($errores, "No se almacenaron los datos de facturacion"); } else { $objeto->setFacturaciones($fac->getIdfacturacion()); } $objeto->setIdentificador(count($clientes[$auxnoctetmp]["generadores"]) + 1); $objeto->addToDatabase(); if ($objeto->getIdgenerador() == 0 || $objeto->getIdgenerador() == "") { array_push($errores, "No se almacenaron los datos del generador"); } array_push($clientes[$auxnoctetmp]["generadores"], array("idgenerador" => $objeto->getIdgenerador(), "razonsocial" => $objeto->getRazonsocial(), "identificador" => $objeto->getIdentificador(), "errores" => $errores)); } break; } } $head = $this->load->view('html/head', array(), true); $menumain = $this->load->view('menu/menumain', array(), true); $body = $this->load->view('clientes/importaresultado', array("menumain" => $menumain, "idempresa" => $idempresa, "idsucursal" => $idsucursal, "clientes" => $clientes), true); $this->load->view('html/html', array("head" => $head, "body" => $body)); } else { echo "No existe el archivo {$archivo}"; } }