db = $db; $this->doli_version = DOL_VERSION; $this->parametros_iniciaes(); } public function parametros_iniciaes(){ global $conf; } function cfdimx_admin_prepare_head(){ global $conf; if(count($this->datos_emisor) == 0){ $this->getEmisor(); } $validacion_rfc = ($this->datos_emisor["MAIN_INFO_SIREN"] != "" ? 1 : 0); $validacion_razon_social = ($this->datos_emisor["CFDIMX_RAZON_SOCIAL"] != "" ? 1 : 0); $h = 0; $head = array(); $head[$h][0] = dol_buildpath('/cfdimx/admin/cfdimx.php', 1).'?mod=dataEmisor'; $head[$h][1] = "Emisor"; $head[$h][2] = "uno"; $h++; if($validacion_rfc == 1 && $validacion_razon_social == 1){ $head[$h][0] = dol_buildpath('/cfdimx/admin/cfdimx.php', 1).'?mod=config'; $head[$h][1] = "Web Services"; $head[$h][2] = "dos"; $h++; // $head[$h][0] = DOL_URL_ROOT.'/cfdimx/admin/cfdimx.php?mod=emisores'; // $head[$h][1] = "Emisores"; // $head[$h][2] = "tres"; // $h++; $head[$h][0] = dol_buildpath('/cfdimx/admin/cfdimx.php', 1).'?mod=retenciones'; $head[$h][1] = "Ret. Locales"; $head[$h][2] = "cinco"; $h++; $head[$h][0] = dol_buildpath('/cfdimx/admin/cfdimx.php', 1).'?mod=formaspago'; $head[$h][1] = "Formas de Pago"; $head[$h][2] = "seis"; $h++; $head[$h][0] = dol_buildpath('/cfdimx/admin/cfdimx.php', 1).'?mod=factura'; $head[$h][1] = "Factura"; $head[$h][2] = "siete"; $h++; $head[$h][0] = dol_buildpath('/cfdimx/admin/cfdimx.php', 1).'?mod=complemento_pago'; $head[$h][1] = "Complemento de Pagos"; $head[$h][2] = "ocho"; $h++; // $head[$h][0] = DOL_URL_ROOT.'/cfdimx/admin/cfdimx.php?mod=configopcional'; // $head[$h][1] = "Ajustes Opcionales"; // $head[$h][2] = "nueve"; // $h++; $head[$h][0] = dol_buildpath('/cfdimx/admin/cfdimx.php', 1).'?mod=cargamasivaclaves'; $head[$h][1] = "Carga Masiva"; $head[$h][2] = "diez"; $h++; $head[$h][0] = dol_buildpath('/cfdimx/admin/cfdimx.php',1 ).'?mod=updatedatos_doli'; $head[$h][1] = "Información Dolibarr"; $head[$h][2] = "once"; $h++; } $head[$h][0] = dol_buildpath('/cfdimx/admin/cfdimx.php', 1).'?mod=recursos'; $head[$h][1] = "Recursos"; $head[$h][2] = "doce"; $h++; $head[$h][0] = dol_buildpath('/cfdimx/admin/cfdimx.php', 1).'?mod=changelog'; $head[$h][1] = "ChangeLog"; $head[$h][2] = "cien"; $h++; return $head; } function getSelected( $v1, $v2 ){ if( $v1==$v2 ){ return "selected"; }else{ return ""; } } public function obtener_catalogo($selected='', $htmlname='', $tipo_catalogo, $tipo_informacion = 0, $tipo_sql = '', $show_empty=0, $exclude='', $disabled=0, $include='', $enableonly='', $force_entity=0, $maxlength=0, $showstatus=0, $morefilter='', $show_every=0, $enableonlytext='', $morecss='', $noactive=0, $entrepot=0){ global $conf,$user,$langs; $db = $this->db; $lista_claves_doli[] = array( "id" => 1, "etiqueta" => "Clave Producto/Servicio"); $lista_claves_doli[] = array( "id" => 2, "etiqueta" => "Unidad de Medida"); $lista_claves_doli[] = array( "id" => 3, "etiqueta" => "No. Identificación"); $lista_claves_doli[] = array( "id" => 4, "etiqueta" => "Objeto de Impuesto"); // If no preselected user defined, we take current user if ((is_numeric($selected) && ($selected < -2 || empty($selected))) && empty($conf->global->SOCIETE_DISABLE_DEFAULT_SALESREPRESENTATIVE)) $selected=$user->id; $excludeUsers=null; $includeUsers=null; // Permettre l’exclusion d’utilisateurs if (is_array($exclude)) $excludeUsers = implode("','",$exclude); // Permettre l’inclusion d’utilisateurs if (is_array($include)) $includeUsers = implode("','",$include); else if ($include == 'hierarchy') { // Build list includeUsers to have only hierarchy $userid=$user->id; $include=array(); if (empty($user->users) || ! is_array($user->users)) $user->get_full_tree(); foreach($user->users as $key => $val) { if (preg_match('/'.$userid.'/',$val['fullpath'])) $include[]=$val['id']; } $includeUsers = implode("','",$include); } $out=''; $valor_placeholder = ""; switch ($tipo_catalogo) { case 1: $sql = "SELECT * FROM ".MAIN_DB_PREFIX."c_cfdimx_pais WHERE active = 1"; $valor_placeholder = "País"; break; case 2: $sql = "SELECT * FROM ".MAIN_DB_PREFIX."c_cfdimx_regimen_f WHERE active = 1"; $valor_placeholder = "Régimen Fiscal"; break; case 3: $sql = "SELECT * FROM ".MAIN_DB_PREFIX."c_cfdimx_husoh WHERE active = 1"; $valor_placeholder = "Huso Horario"; break; case 4: $sql = "SELECT * FROM ".MAIN_DB_PREFIX."c_cfdimx_husoh WHERE active = 1 LIMIT 1"; $valor_placeholder = "Catálogo"; break; case 5: $sql = "SELECT * FROM ".MAIN_DB_PREFIX."product"; $valor_placeholder = "Producto"; break; case 6: $sql = "SELECT * FROM ".MAIN_DB_PREFIX."product WHERE rowid = 0"; $valor_placeholder = "Nuevo Valor"; break; default: $sql = ""; break; } if($tipo_informacion == 1) // $sql .= " AND code='".$selected."'"; $resql = ""; $resql = $db->query($sql); // print $sql; if ($resql) { $num = $db->num_rows($resql); $i = 0; $etiqueta = ""; if ($num) { // Enhance with select2 $nodatarole=''; if ($conf->use_javascript_ajax) { include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php'; $comboenhancement = ajax_combobox($htmlname); $out.=$comboenhancement; $nodatarole=($comboenhancement?' data-role="none"':''); } if($tipo_catalogo == 5){ $out.= ''; } if ($show_empty) $out.= ''."\n"; if ($show_every) $out.= ''."\n"; $out.= ''; $i=0; while ($rw = $db->fetch_object($resql)) { switch ($tipo_catalogo) { case 3: $valor = $rw->label; $etiqueta = $langs->trans($rw->label); if ($selected == $valor) { $out.= '"; break; case 4: foreach ($lista_claves_doli as $list_ca) { $valor = $list_ca["id"]; $etiqueta = $list_ca["etiqueta"]; if ($selected == $valor) { $out.= '"; } break; case 5: $valor = $rw->rowid; $list_etiqueta = array(); if(!empty($rw->ref)){ $list_etiqueta[] = $rw->ref; } if(!empty($rw->label)){ $list_etiqueta[] = $rw->label; } $etiqueta = implode(" - ", $list_etiqueta); if ($selected == $valor) { $out.= '"; break; default: $valor = $rw->code; $etiqueta = $rw->code." - ".$rw->label; if(dol_strlen($etiqueta) > 30){ $etiqueta = dol_substr($etiqueta, 0, 30); } if ($selected == $valor) { $out.= '"; break; } } }else{ $nodatarole=''; if ($conf->use_javascript_ajax) { include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php'; $comboenhancement = ajax_combobox($htmlname); $out.=$comboenhancement; $nodatarole=($comboenhancement?' data-role="none"':''); } $out.= ''; // if($tipo_informacion == 1) // $out = $etiqueta; }else{ dol_print_error($db); } return $out; } public function validarEmisor($rfc = ""){ global $conf; $rfc_txt = ($rfc == "" ? $conf->global->MAIN_INFO_SIREN : $rfc); $sql_emisor = 'SELECT * FROM '.MAIN_DB_PREFIX.'cfdimx_emisor_datacomp WHERE emisor_rfc="'.$rfc_txt.'" AND entity_id = '.$conf->entity; $res_emisor = $this->db->query($sql_emisor); $num_emisor = $this->db->num_rows($res_emisor); if($num_emisor > 0){ $obj_emisor = $this->db->fetch_object($res_emisor); $num_emisor = $obj_emisor->rowid; } return $num_emisor; } public function registarEmisor(){ global $conf; dolibarr_set_const($this->db, "MAIN_INFO_SIREN", $this->datos_emisor["rfc"], 'chaine', 1, '', $conf->entity); dolibarr_set_const($this->db, "CFDIMX_HUSO_HORARIO", $this->datos_emisor["huso_horario"], 'chaine', 1, '', $conf->entity); dolibarr_set_const($this->db, "CFDIMX_RAZON_SOCIAL", $this->datos_emisor["razon_social"], 'chaine', 1, '', $conf->entity); dolibarr_set_const($this->db, "CFDIMX_REGIMEN_FISCAL", $this->datos_emisor["regimen_fiscal"], 'chaine', 1, '', $conf->entity); dolibarr_set_const($this->db, "CFDIMX_DIRECCION", $this->datos_emisor["direccion"], 'chaine', 1, '', $conf->entity); if($this->datos_emisor["validacion"] == 1){ dolibarr_set_const($this->db, "MAIN_INFO_SOCIETE_COUNTRY", $this->datos_emisor["pais"], 'chaine', 1, '', $conf->entity); dolibarr_set_const($this->db, "MAIN_INFO_SOCIETE_STATE", $this->datos_emisor["estado"], 'chaine', 1, '', $conf->entity); dolibarr_set_const($this->db, "MAIN_INFO_SOCIETE_ZIP", $this->datos_emisor["codigo_postal"], 'chaine', 1, '', $conf->entity); } $sql = ""; $sql = "INSERT INTO ".MAIN_DB_PREFIX."cfdimx_emisor_datacomp"; $sql .= " ( "; $sql.=' emisor_rfc,'; $sql.=' razon_social,'; $sql.=' regimen,'; $sql.=' pais,'; $sql.=' estado,'; $sql.=' codigo_postal,'; $sql.=' emisor_delompio,'; $sql.=' emisor_colonia,'; $sql.=' emisor_calle,'; $sql.=' emisor_noext,'; $sql.=' emisor_noint,'; $sql.=' entity_id,'; $sql.=' cod_municipio,'; $sql.=' cod_colonia,'; $sql.=' predeterminado'; $sql.=')'; $sql.= ' VALUES'; $sql.= '('; $sql.= '"'.$this->datos_emisor["rfc"].'",'; $sql.= '"'.$this->datos_emisor["razon_social"].'",'; $sql.= '"'.$this->datos_emisor["regimen_fiscal"].'",'; $sql.= '"'.$conf->global->MAIN_INFO_SOCIETE_COUNTRY.'",'; $sql.= '"'.$conf->global->MAIN_INFO_SOCIETE_STATE.'",'; $sql.= '"'.$conf->global->MAIN_INFO_SOCIETE_ZIP.'",'; $sql.= '"'.$this->datos_emisor["delmpio"].'",'; $sql.= '"'.$this->datos_emisor["colonia"].'",'; $sql.= '"'.$this->datos_emisor["calle"].'",'; $sql.= '"'.$this->datos_emisor["noext"].'",'; $sql.= '"'.$this->datos_emisor["noint"].'",'; $sql.= '"'.$conf->entity.'",'; $sql.= '"'.$this->datos_emisor["clave_mpio"].'",'; $sql.= '"'.$this->datos_emisor["clave_col"].'",'; $sql.= '"'.$this->datos_emisor["predeterminado"].'"'; $sql.= ')'; // echo $sql."
"; $res = $this->db->query($sql); if ($res) { return 1; }else { return 0; } } public function actualizarEmisor(){ global $conf; dolibarr_set_const($this->db, "MAIN_INFO_SIREN", $this->datos_emisor["rfc"], 'chaine', 1, '', $conf->entity); dolibarr_set_const($this->db, "CFDIMX_HUSO_HORARIO", $this->datos_emisor["huso_horario"], 'chaine', 1, '', $conf->entity); dolibarr_set_const($this->db, "CFDIMX_RAZON_SOCIAL", $this->datos_emisor["razon_social"], 'chaine', 1, '', $conf->entity); dolibarr_set_const($this->db, "CFDIMX_REGIMEN_FISCAL", $this->datos_emisor["regimen_fiscal"], 'chaine', 1, '', $conf->entity); dolibarr_set_const($this->db, "CFDIMX_DIRECCION", $this->datos_emisor["direccion"], 'chaine', 1, '', $conf->entity); if($this->datos_emisor["validacion"] == 1){ dolibarr_set_const($this->db, "MAIN_INFO_SOCIETE_COUNTRY", $this->datos_emisor["pais"], 'chaine', 1, '', $conf->entity); dolibarr_set_const($this->db, "MAIN_INFO_SOCIETE_STATE", $this->datos_emisor["estado"], 'chaine', 1, '', $conf->entity); dolibarr_set_const($this->db, "MAIN_INFO_SOCIETE_ZIP", $this->datos_emisor["codigo_postal"], 'chaine', 1, '', $conf->entity); } $sql_up = ""; $sql_up = "UPDATE " . MAIN_DB_PREFIX . "cfdimx_emisor_datacomp"; $sql_up .= " SET"; $sql_up.= ' emisor_rfc = "'.$this->datos_emisor["rfc"].'",'; $sql_up.= ' razon_social = "'.$this->datos_emisor["razon_social"].'",'; $sql_up.= ' regimen = "'.$this->datos_emisor["regimen_fiscal"].'",'; $sql_up.= ' pais = "'.$conf->global->MAIN_INFO_SOCIETE_COUNTRY.'",'; $sql_up.= ' estado = "'.$conf->global->MAIN_INFO_SOCIETE_STATE.'",'; $sql_up.= ' codigo_postal ="'.$conf->global->MAIN_INFO_SOCIETE_ZIP.'",'; $sql_up.= ' emisor_delompio ="'.$this->datos_emisor["delmpio"].'",'; $sql_up.= ' emisor_colonia ="'.$this->datos_emisor["colonia"].'",'; $sql_up.= ' emisor_calle = "'.$this->datos_emisor["calle"].'",'; $sql_up.= ' emisor_noext = "'.$this->datos_emisor["noext"].'",'; $sql_up.= ' emisor_noint = "'.$this->datos_emisor["noint"].'",'; $sql_up.= ' cod_municipio = "'.$this->datos_emisor["clave_mpio"].'",'; $sql_up.= ' cod_colonia = "'.$this->datos_emisor["clave_col"].'"'; $sql_up .= " WHERE rowid = " . $this->datos_emisor["rowid"]; if($this->datos_emisor["rowid"] > 0){ // echo $sql_up."
"; $res = $this->db->query($sql_up); if ($res) { return 1; }else { return 0; } }else{ return 0; } } public function getEmisor(){ global $conf, $langs; $aux_tmp_country = explode(":", $conf->global->MAIN_INFO_SOCIETE_COUNTRY); $aux_tmp_state = explode(":", $conf->global->MAIN_INFO_SOCIETE_STATE); if($conf->global->CFDIMX_DIRECCION != ""){ if(is_numeric($conf->global->CFDIMX_DIRECCION)){ $aux_tmp_address = $conf->global->MAIN_INFO_SOCIETE_ADDRESS; }else{ $aux_tmp_address = $conf->global->CFDIMX_DIRECCION; } }else{ $aux_tmp_address = $conf->global->MAIN_INFO_SOCIETE_ADDRESS; } $delmpio = null; $clave_mpio = null; $colonia = null; $clave_col = null; $calle = null; $noext = null; $noint = null; $sql_emisor = 'SELECT * FROM '.MAIN_DB_PREFIX.'cfdimx_emisor_datacomp WHERE emisor_rfc="'. $conf->global->MAIN_INFO_SIREN.'" AND entity_id = '.$conf->entity; $res_emisor = $this->db->query($sql_emisor); $num_emisor = $this->db->num_rows($res_emisor); if($num_emisor > 0){ $obj_emisor = $this->db->fetch_object($res_emisor); $delmpio = $obj_emisor->emisor_delompio; $clave_mpio = $obj_emisor->cod_municipio; $colonia = $obj_emisor->emisor_colonia; $clave_col = $obj_emisor->cod_colonia; $calle = $obj_emisor->emisor_calle; $noext = $obj_emisor->emisor_noext; $noint = $obj_emisor->emisor_noint; } #Validacion para tener estos campos obligatorios de Dolibarr if(strcmp("No definido", getState($aux_tmp_state[0], 1)) == 0){ $this->val_datos_ini++; $msg = img_picto('', 'state', 'class="pictofixedwidth"')." Estado
"; $msg .= "Nota: Para modificar este campo es necesario ingresar al área de ".$langs->trans("RutaCambioValores")." de dolibarr en el campo: Estado."; $this->datos_ini_f[] = $msg; } if(getCountry($aux_tmp_country[0], 1) == ""){ $this->val_datos_ini++; $msg = img_picto('', 'country', 'class="pictofixedwidth"')." País
"; $msg .= "Nota: Para modificar este campo es necesario ingresar al área de ".$langs->trans("RutaCambioValores")." de dolibarr en el campo: País."; $this->datos_ini_f[] = $msg; } if($conf->global->MAIN_INFO_SOCIETE_ZIP == ""){ $this->val_datos_ini++; $msg = "Código Postal
"; $msg .= "Nota: Para modificar este campo es necesario ingresar al área de ".$langs->trans("RutaCambioValores")." de dolibarr en el campo: Código postal."; $this->datos_ini_f[] = $msg; } $this->datos_emisor = array( "MAIN_INFO_SOCIETE_COUNTRY" => $conf->global->MAIN_INFO_SOCIETE_COUNTRY, "MAIN_INFO_SOCIETE_COUNTRY_E" => $aux_tmp_country, "MAIN_INFO_SOCIETE_COUNTRY_L" => getCountry($aux_tmp_country[0], 1), "MAIN_INFO_SIREN" => $conf->global->MAIN_INFO_SIREN, "MAIN_INFO_SOCIETE_STATE" => $conf->global->MAIN_INFO_SOCIETE_STATE, "MAIN_INFO_SOCIETE_STATE_E" => $aux_tmp_state, "MAIN_INFO_SOCIETE_STATE_L" => getState($aux_tmp_state[0], 1), "MAIN_INFO_SOCIETE_ZIP" => $conf->global->MAIN_INFO_SOCIETE_ZIP, "MAIN_INFO_SOCIETE_ADDRESS" => $conf->global->MAIN_INFO_SOCIETE_ADDRESS, "CFDIMX_RAZON_SOCIAL" => $conf->global->CFDIMX_RAZON_SOCIAL, "CFDIMX_REGIMEN_FISCAL" => $conf->global->CFDIMX_REGIMEN_FISCAL, "CFDIMX_HUSO_HORARIO" => $conf->global->CFDIMX_HUSO_HORARIO, "CFDIMX_DIRECCION" => $aux_tmp_address, "delmpio" => $delmpio, "clave_mpio" => $clave_mpio, "colonia" => $colonia, "clave_col" => $clave_col, "calle" => $calle, "noext" => $noext, "noint" => $noint ); } public function getEmisores(){ global $conf; $num_emisores = 0; $sql_emisores = 'SELECT * FROM '.MAIN_DB_PREFIX.'cfdimx_emisor_datacomp WHERE entity_id = '.$conf->entity; $res_emisores = $this->db->query($sql_emisores); $num_emisores = $this->db->num_rows($res_emisores); if($num_emisores > 0){ while($obj = $this->db->fetch_object($res_emisores)){ $this->lista_emisores[] = $obj; } } return $num_emisores; } } ?>