* Copyright (C) 2018-2019 Nicolas ZABOURI * Copyright (C) 2019-2020 Frédéric France * Copyright (C) 2023 SuperAdmin * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /** * \defgroup cfdimx Module CFDIMX * \brief CFDIMX module descriptor. * * \file htdocs/cfdimx/core/modules/modCFDIMX.class.php * \ingroup cfdimx * \brief Description and activation file for module CFDIMX */ include_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php'; /** * Description and activation class for module CFDIMX */ class modCFDIMX extends DolibarrModules { //Variables CFDIMX public $mes_udpate_cfdimx; public $anio_udpate_cfdimx; public $version_cfdimx; public $version_cfdimx_sat; public $version_min_dolibarr; public $version_max_dolibarr; public $detail_cfdimx; public $ws_produccion = "http://140.82.11.116/TimbraCFDI33/services/ServicioTimbrado1?wsdl"; public $ws_pruebas = "http://155.138.207.11:8080/TimbraCFDI33/services/ServicioTimbrado1?wsdl"; public $version_cce = "2.0"; public $version_cp = "3.1"; /** * Constructor. Define names, constants, directories, boxes, permissions * * @param DoliDB $db Database handler */ public function __construct($db) { global $langs, $conf; $this->db = $db; // Id for module (must be unique). // Use here a free id (See in Home -> System information -> Dolibarr for list of used modules id). $this->numero = 9646330; // TODO Go on page https://wiki.dolibarr.org/index.php/List_of_modules_id to reserve an id number for your module // Key text used to identify module (for permissions, menus, etc...) $this->rights_class = 'cfdimx'; // Family can be 'base' (core modules),'crm','financial','hr','projects','products','ecm','technic' (transverse modules),'interface' (link with external tools),'other','...' // It is used to group modules by family in module setup page // $this->family = "financial"; $this->family = "Auribox Consulting"; // Module position in the family on 2 digits ('01', '10', '20', ...) $this->module_position = '100'; // Gives the possibility for the module, to provide his own family info and position of this family (Overwrite $this->family and $this->module_position. Avoid this) //$this->familyinfo = array('myownfamily' => array('position' => '01', 'label' => $langs->trans("MyOwnFamily"))); // Module label (no space allowed), used if translation string 'ModuleCFDIMXName' not found (CFDIMX is name of module). $this->name = preg_replace('/^mod/i', '', get_class($this)); // Module description, used if translation string 'ModuleCFDIMXDesc' not found (CFDIMX is name of module). // $this->description = "CFDIMXDescription"; // Used only if file README.md and README-LL.md not found. // $this->descriptionlong = "CFDIMXDescription"; $this->mes_udpate_cfdimx = "Enero"; $this->anio_udpate_cfdimx = "2025"; $this->version_cfdimx = "1.25.1.0"; $this->version_cfdimx_sat = "4.0"; $this->version_min_dolibarr = "10.0.0"; $this->version_max_dolibarr = "20.0.3"; $this->url_last_version = "https://api-cfdi.dolibarr.mx/versioncfdi"; $funciones_no_activas = 0; $addendas = 0; $facture_global = 0; $archivo = dol_buildpath('/cfdimx/facture/card_global.php'); (file_exists($archivo) ? $facture_global++ : $funciones_no_activas++); $cce20 = 0; $archivo = dol_buildpath('/cfdimx/facture/card_cce20.php'); (file_exists($archivo) ? $cce20++ : $funciones_no_activas++); // $cp30 = 0; // $archivo = dol_buildpath('/cfdimx/facture/card_cp30.php'); // (file_exists($archivo) ? $cp30++ : $funciones_no_activas++); $cp31 = 0; $archivo = dol_buildpath('/cfdimx/facture/card_cp31.php'); (file_exists($archivo) ? $cp31++ : $funciones_no_activas++); $descripcion_cfdimx = "Módulo para facturación electrónica en México."; $descripcion_cfdimx .= "Actualización ".$this->mes_udpate_cfdimx." ".$this->anio_udpate_cfdimx." (CFDI 4.0)."; $this->description = $descripcion_cfdimx; $descripcion_cfdimx .= "

"; $descripcion_cfdimx .= "Funciones Activas
"; $descripcion_cfdimx .= "
    "; $descripcion_cfdimx .= "
  • Timbrado de Facturas
  • "; $descripcion_cfdimx .= "
      "; $descripcion_cfdimx .= "
    • I.V.A Tipo Factor (0%, 8%, 16%, Exento)
    • "; $descripcion_cfdimx .= "
    • Retenciones (I.S.R., I.V.A.)
    • "; $descripcion_cfdimx .= "
    • Retenciones Locales (I.R.S., I.V.A.)
    • "; $descripcion_cfdimx .= "
    "; $descripcion_cfdimx .= "
  • Timbrado de Complementos de Pago 2.0
  • "; $descripcion_cfdimx .= "
  • Complementos
  • "; $descripcion_cfdimx .= "
      "; $descripcion_cfdimx .= "
    • CFDI Relacionados
    • "; if($facture_global == 1){ $descripcion_cfdimx .= "
    • Factura Global
    • "; } if($cce20 == 1){ $descripcion_cfdimx .= "
    • Comercio Exterior (CCE) ".$this->version_cce."
    • "; } // if($cp30 == 1){ // $descripcion_cfdimx .= "
    • Carta Porte (CP) 3.0
    • "; // } if($cp31 == 1){ $descripcion_cfdimx .= "
    • Carta Porte (CP) ".$this->version_cp."
    • "; } $descripcion_cfdimx .= "
    "; $descripcion_cfdimx .= "
"; if($addendas == 1){ $descripcion_cfdimx .= "
Compatibilidad con Addendas
"; $descripcion_cfdimx .= " • BioPapel
"; $descripcion_cfdimx .= " • Soporte para más en próximas actualizaciones
"; } if($funciones_no_activas > 0){ $descripcion_cfdimx .= "
Funciones Disponibles en otra Versión del Módulo
"; $descripcion_cfdimx .= "
    "; $descripcion_cfdimx .= "
  • Complementos
  • "; $descripcion_cfdimx .= "
      "; if($facture_global == 0){ $descripcion_cfdimx .= "
    • Factura Global
    • "; } if($cce20 == 0){ $descripcion_cfdimx .= "
    • Comercio Exterior (CCE) ".$this->version_cce."
    • "; } if($cp30 == 0){ $descripcion_cfdimx .= "
    • Carta Porte (CP) ".$this->version_cp."
    • "; } $descripcion_cfdimx .= "
    "; } $descripcion_cfdimx .= "Compatible con Dolibarr ".$this->version_min_dolibarr." hasta ".$this->version_max_dolibarr.""; $this->detail_cfdimx = $descripcion_cfdimx; // Author $this->editor_name = "Auribox Consulting"; $this->editor_url = "https://auriboxconsulting.com/"; // Possible values for version are: 'development', 'experimental', 'dolibarr', 'dolibarr_deprecated', 'experimental_deprecated' or a version string like 'x.y.z' $this->version = $this->version_cfdimx; if((int)DOL_VERSION >= 14){ $this->checkForUpdate(); } // Url to the file with your last numberversion of this module //$this->url_last_version = 'http://www.example.com/versionmodule.txt'; // Key used in llx_const table to save module status enabled/disabled (where CFDIMX is value of property name of module in uppercase) $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name); // Name of image file used for this module. // If file is in theme/yourtheme/img directory under name object_pictovalue.png, use this->picto='pictovalue' // If file is in module/img directory under name object_pictovalue.png, use this->picto='pictovalue@module' // To use a supported fa-xxx css style of font awesome, use this->picto='xxx' $this->picto = 'bill'; $usar_tpl = 1; if(@$conf->mrp->enabled || (int)DOL_VERSION < 15){ $usar_tpl = 0; } // Define some features supported by module (triggers, login, substitutions, menus, css, etc...) $this->module_parts = array( // Set this to 1 if module has its own trigger directory (core/triggers) 'triggers' => 1, // Set this to 1 if module has its own login method file (core/login) 'login' => 0, // Set this to 1 if module has its own substitution function file (core/substitutions) 'substitutions' => 0, // Set this to 1 if module has its own menus handler directory (core/menus) 'menus' => 0, // Set this to 1 if module overwrite template dir (core/tpl) 'tpl' => $usar_tpl, // Set this to 1 if module has its own barcode directory (core/modules/barcode) 'barcode' => 0, // Set this to 1 if module has its own models directory (core/modules/xxx) 'models' => 0, // Set this to 1 if module has its own printing directory (core/modules/printing) 'printing' => 0, // Set this to 1 if module has its own theme directory (theme) 'theme' => 0, // Set this to relative path of css file if module has its own css file 'css' => array( // '/cfdimx/css/cfdimx.css.php', ), // Set this to relative path of js file if module must load a js on all pages 'js' => array( // '/cfdimx/js/cfdimx.js.php', ), // Set here all hooks context managed by module. To find available hook context, make a "grep -r '>initHooks(' *" on source code. You can also set hook context to 'all' 'hooks' => array( 'data' => array( 'invoicecard', // 'formmail', 'paiementcard', 'formConfirm' ), ), // Set this to 1 if features of module are opened to external users 'moduleforexternal' => 0, ); // 'getDirList' -> next version // Data directories to create when module is enabled. // Example: this->dirs = array("/cfdimx/temp","/cfdimx/subdir"); $this->dirs = array("/cfdimx/temp", "/cfdimx/sellos"); // Config pages. Put here list of php page, stored into cfdimx/admin directory, to use to setup module. $this->config_page_url = array("emisores.php@cfdimx"); // Dependencies // A condition to hide module $this->hidden = false; // List of module class names that must be enabled if this module is enabled. Example: array('always'=>array('modModuleToEnable1','modModuleToEnable2'), 'FR'=>array('modModuleToEnableFR')...) $this->depends = array( 'modFacture', 'modBanque', 'modProduct', 'modService', 'modBookmark', 'modAgenda' ); // List of module class names to disable if this one is disabled. Example: array('modModuleToDisable1', ...) $this->requiredby = array(); // List of module class names this module is in conflict with. Example: array('modModuleToDisable1', ...) $this->conflictwith = array(); // The language file dedicated to your module $this->langfiles = array("cfdimx@cfdimx"); // Prerequisites $this->phpmin = array(7, 0); // Minimum version of PHP required by module $this->need_dolibarr_version = array(16, 0); // Minimum version of Dolibarr required by module $this->need_javascript_ajax = 0; // Messages at activation $this->warnings_activation = array(); // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','MX'='textmx'...) $this->warnings_activation_ext = array(); // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','MX'='textmx'...) //$this->automatic_activation = array('FR'=>'CFDIMXWasAutomaticallyActivatedBecauseOfYourCountryChoice'); //$this->always_enabled = true; // If true, can't be disabled // Constants // List of particular constants to add when module is enabled (key, 'chaine', value, desc, visible, 'current' or 'allentities', deleteonunactive) // Example: $this->const=array(1 => array('CFDIMX_MYNEWCONST1', 'chaine', 'myvalue', 'This is a constant to add', 1), // 2 => array('CFDIMX_MYNEWCONST2', 'chaine', 'myvalue', 'This is another constant to add', 0, 'current', 1) // ); #Claves de c_ClaveProdServCP con valor (0,1) y (1) $lista_claveprodservcp = " 01010101, 10151608, 10171600, 10171601, 10171602, 10171603, 10171604, 10171605, 10171606, 10171607, 10171608, 10171609, 10171610, 10171611, 10171700, 10171701, 10171702, 10191500, 10191506, 10191507, 10191508, 10191509, 10191510, 10191511, 11101505, 11101511, 11101512, 11101521, 11101522, 11101528, 11101600, 11101601, 11101602, 11101603, 11101604, 11101605, 11101606, 11101607, 11101608, 11101610, 11101611, 11101612, 11101613, 11101614, 11101615, 11101622, 11101700, 11101705, 11101706, 11101709, 11101710, 11101711, 11101712, 11101713, 11101714, 11101716, 11101900, 11101901, 11101902, 11101903, 11101904, 11101905, 11101906, 11101907, 11101908, 11121800, 11121801, 11121802, 11121803, 11121804, 11121805, 11121806, 11121807, 11121808, 11121809, 11121810, 11121900, 11121901, 11141600, 11141601, 11141602, 11141603, 11141604, 11141605, 11141606, 11141607, 11141608, 11141609, 11141610, 11141700, 11141701, 11141702, 11162100, 11162101, 11162102, 11162104, 11162105, 11162107, 11162108, 11162109, 11162110, 11162111, 11162112, 11162113, 11162114, 11162115, 11162116, 11162117, 11162118, 11162119, 11162120, 11162121, 11162122, 11162123, 11162124, 11162125, 11162126, 11162127, 11162128, 11162129, 11162130, 11162131, 11162132, 11162133, 11172000, 11172001, 11172002, 11172003, 11172200, 11172201, 12131500, 12131501, 12131502, 12131503, 12131504, 12131505, 12131506, 12131507, 12131508, 12131509, 12131700, 12131701, 12131702, 12131703, 12131704, 12131705, 12131706, 12131707, 12131708, 12131709, 12141500, 12141501, 12141502, 12141503, 12141504, 12141505, 12141601, 12141702, 12141704, 12141707, 12141709, 12141710, 12141711, 12141715, 12141718, 12141721, 12141723, 12141724, 12141726, 12141727, 12141729, 12141732, 12141740, 12141743, 12141745, 12141746, 12141747, 12141748, 12141749, 12141801, 12141803, 12141804, 12141805, 12141806, 12141901, 12141902, 12141903, 12141904, 12141905, 12141906, 12141907, 12141908, 12141909, 12141910, 12141912, 12141913, 12141915, 12141916, 12142001, 12142003, 12142004, 12142005, 12142006, 12142101, 12142102, 12142103, 12142104, 12142105, 12142106, 12142107, 12142108, 12161600, 12161601, 12161602, 12161603, 12161604, 12161605, 12161606, 12162211, 12163800, 12163801, 12163802, 12164503, 12171501, 12171502, 12171503, 12171504, 12171506, 12171507, 12171508, 12171509, 12171510, 12171511, 12171701, 12171702, 12171703, 12191500, 12191501, 12191502, 12191503, 12191600, 12191601, 12191602, 12352000, 12352005, 12352100, 12352101, 12352102, 12352103, 12352104, 12352105, 12352106, 12352107, 12352111, 12352114, 12352115, 12352117, 12352118, 12352119, 12352120, 12352206, 12352210, 12352300, 12352301, 12352302, 12352303, 12352304, 12352305, 12352306, 12352311, 12352312, 12352313, 12352314, 12352315, 12352316, 12352317, 12352318, 12352319, 12352320, 12352321, 12352400, 12352401, 12352402, 13102000, 13102001, 13102002, 13102003, 13102005, 13102006, 13102010, 13102031, 13111001, 13111002, 13111003, 13111004, 13111005, 13111006, 13111007, 13111008, 13111009, 13111012, 13111013, 13111014, 13111015, 13111017, 13111018, 13111019, 13111020, 13111022, 13111023, 13111024, 13111025, 13111026, 13111027, 13111029, 13111033, 13111035, 13111036, 13111037, 13111040, 13111048, 13111049, 13111050, 13111051, 13111052, 13111054, 13111058, 13111059, 13111060, 13111061, 13111062, 13111063, 13111064, 13111065, 13111066, 13111067, 13111069, 13111070, 13111071, 13111072, 13111073, 13111074, 13111100, 14122200, 14122201, 14122202, 15101500, 15101502, 15101503, 15101504, 15101505, 15101506, 15101507, 15101508, 15101509, 15101510, 15101511, 15101512, 15101513, 15101514, 15101515, 15101600, 15101601, 15101602, 15101603, 15101604, 15101605, 15101606, 15101607, 15101608, 15101609, 15101610, 15101611, 15101612, 15101613, 15101614, 15111500, 15111501, 15111502, 15111503, 15111504, 15111505, 15111506, 15111507, 15111508, 15111509, 15111510, 15111511, 15111512, 15131500, 15131502, 15131503, 15131504, 15131505, 15131506, 20122100, 20122101, 20122102, 20122103, 20122104, 20122105, 20122106, 20122107, 20122108, 20122109, 20122110, 20122111, 20122112, 20122114, 20122115, 20122213, 24121800, 24121801, 24121802, 24121803, 24121804, 24121805, 24121806, 24121807, 24121808, 24131500, 24131501, 24131502, 24131503, 24131504, 24131505, 24131506, 24131507, 24131508, 24131509, 24131510, 24131511, 24131512, 24131513, 24131514, 25174000, 25174001, 25174002, 25174003, 25174004, 25174005, 25174006, 26101500, 26101501, 26101502, 26101503, 26101504, 26101505, 26101506, 26101507, 26101508, 26101509, 26101510, 26101511, 26101512, 26101513, 26101514, 26101515, 26111700, 26111701, 26111702, 26111703, 26111704, 26111705, 26111706, 26111707, 26111708, 26111709, 26111710, 26111711, 26111712, 26111713, 26111714, 26111715, 26111716, 26111717, 26111718, 26111719, 26111720, 26111721, 26111722, 26111723, 26111724, 26111725, 26111726, 26111727, 26111728, 26111729, 30121500, 30121501, 30121600, 30121601, 30121602, 30121604, 31132000, 31132001, 31132002, 31201600, 31201601, 31201604, 31201605, 31201606, 31201607, 31201608, 31201609, 31201610, 31201611, 31201612, 31201613, 31201614, 31201615, 31201616, 31201617, 31201618, 31201619, 31201620, 31201621, 31201622, 31201623, 31201624, 31201625, 31201626, 31201627, 31201628, 31201629, 31201630, 31201631, 31201632, 31201633, 31201634, 31201635, 31201636, 31201637, 31211500, 31211501, 31211502, 31211503, 31211504, 31211505, 31211506, 31211507, 31211508, 31211509, 31211510, 31211511, 31211512, 31211513, 31211514, 31211515, 31211516, 31211517, 31211518, 31211519, 31211520, 31211521, 31211522, 31211600, 31211601, 31211602, 31211603, 31211604, 31211605, 31211606, 31211607, 31211800, 31211801, 31211802, 31211803, 39111714, 41104000, 41104001, 41104002, 41104003, 41104004, 41104005, 41104006, 41104007, 41104008, 41104009, 41104010, 41104011, 41104012, 41104013, 41104014, 41104015, 41104016, 41104017, 41104018, 41104019, 41104020, 41104021, 41104022, 42172000, 42172001, 42172002, 42172003, 42172004, 42172005, 42172006, 42172007, 42172008, 42172009, 42172010, 42172011, 42172012, 42172013, 42172014, 42172015, 42172016, 42172017, 42172018, 42191700, 42191706, 42191711, 42271700, 42271701, 46101500, 46101501, 46101502, 46101503, 46101504, 46101505, 46101506, 46101600, 46101601, 46101800, 46101801, 46101802, 46191600, 46191601, 47101600, 47101601, 47101602, 47101603, 47101604, 47101605, 47101606, 47101607, 47101608, 47101609, 47101610, 47101611, 47101612, 47101613, 47101614, 47101615, 47131823, 47131824, 47131825, 47131826, 47131827, 47131828, 47131829, 47131830, 47131831, 47131832, 47131833, 47131834, 47131835, 49131600, 49131601, 49131602, 49131603, 49131604, 49131605, 49131606, 49131607, 50121500, 50121537, 50121538, 50121539, 50202200, 50202201, 50202202, 50202203, 50202204, 50202205, 50202206, 50202207, 50202208, 50202209, 50202210, 51101525, 51101607, 51101710, 51101716, 51102718, 51102722, 51102728, 51121601, 51121602, 51121603, 51122111, 51131503, 51142901, 51142930, 51142931, 51161806, 51171513, 51171629, 51171632, 51191703, 51191804 "; $this->const = array( 0 => array('CFDIMX_HUSO_HORARIO','chaine','0','Configuración del huso horario del módulo CFDIMX',0), 1 => array('CFDIMX_RET_INDIVIDUALES','chaine','0','Configuración para habilitar Retenciones Individuales en el módulo CFDIMX',0), 2 => array('CFDIMX_DEBUG_TIMBRADO','chaine','0','Visualización de la información que envia el módulo CFDIMX al WS',0), 3 => array('CFDIMX_VERSION_SAT','chaine',$this->version_cfdimx_sat,'Constante que guarda la versión de CFDI que maneja el SAT',0), 4 => array('CFDIMX_VERSION','chaine',$this->version_cfdimx,'Constante que guarda la versión de CFDIMX que se esta utilizando',0), 5 => array('CFDIMX_DESC_PDF','chaine','0','Configuración para habilitar la descripción del Producto en Mayusculas',0), 6 => array('CFDIMX_DESC_PROD_CAT_ETIQUETA','chaine','1','Configuración de la descripción del Producto de Catalogo utilizando Etiqueta',0), 7 => array('CFDIMX_DESC_PROD_CAT_DESC','chaine','1','Configuración de la descripción del Producto de Catalogo utilizando Desc',0), 8 => array('CFDIMX_DESC_PROD_NO_CAT_DESC','chaine','0','Configuración de la descripción del Producto no Catalogo utilizando Desc',0), 9 => array('CFDIMX_RAZON_SOCIAL','chaine','0','Constante que almacena la Razón Social del Emisor',0), 10 => array('CFDIMX_REGIMEN_FISCAL','chaine','0','Constante que almacena el Regimen Fiscal del Emisor',0), 11 => array('CFDIMX_V_MIN_DOLI','chaine',$this->version_min_dolibarr,'Constante que almacena la versión Minima de Dolibarr que soporta el módulo',0), 12 => array('CFDIMX_V_MAX_DOLI','chaine',$this->version_max_dolibarr,'Constante que almacena la versión Máxima de Dolibarr que soporta el módulo',0), 13 => array('CFDIMX_DESC_PROD_CAT_REF','chaine','1','Configuración de la descripción del Producto de Catalogo utilizando Referencia',0), 14 => array('CFDIMX_ADD_INFO_LINE','chaine','0','Configuración para agregar la informacion que se captura en las lineas de las Facturas para los Productos de Catalogos',0), 15 => array('CFDIMX_DIRECCION','chaine','0','Constante que almacena la Dirección del Emisor',0), 16 => array('CFDIMX_LIST_CLAVE_PRODSERVCP','chaine',trim($lista_claveprodservcp),'Lista de Claves Prod Serv CP',1), 17 => array('CFDIMX_USOCFDI_PAGOS','chaine','CP01','Constante que almacena el Uso CFDI de los Complementos de Pago',1), 18 => array('CFDIMX_LIM_DESC','chaine','0','Constante que almacena si se trunca la Descripción del Producto cuando supera el limite(1,000 caracteres) establecido por el SAT',1), 19 => array('CFDIMX_PAGOS_C_PRODSERV','chaine','84111506','Constante que almacena la Clave Producto Servicio para Complemento de Pagos.',1), 20 => array('CFDIMX_PAGOS_C_UMED','chaine','ACT','Constante que almacena la Clave de Unidad de Medida para Complemento de Pagos.',1), 21 => array('CFDIMX_PAGOS_C_DESC','chaine','Pago','Constante que almacena la Descripcion para Complemento de Pagos.',1), 22 => array('CFDIMX_MARCADORES','chaine','0','Configuración para agregar a los Marcadores los Recursos SAT.',1), 23 => array('CFDIMX_ALERTA_TIMBRES','chaine','0','Constante que almacena si se muestran una alerta para un minimo de Timbres.',1), 24 => array('CFDIMX_MIN_TIMBRES','chaine','0','Constante que almacena la cantidad minima para mostrar una alerta de Timbres.',1), 25 => array('CFDIMX_EXTRAFIELDS_CCE','chaine','0','Constante para agregar los campos al Catalogo de Productos para llenado automatico en Comercio Exterior (CCE).',1), 26 => array('CFDIMX_EXTRAFIELDS_CP','chaine','0','Constante para agregar los campos al Catalogo de Productos para llenado automatico en Carta Porte (CP).',1), 27 => array('CFDIMX_FAC_DIAS_CFDI_REL','chaine','30','Constante que guarda el número de días para listar Facturas en CFDI Relacionados.',1), 28 => array('CFDIMX_PAGOS_DIAS_CFDI_REL','chaine','30','Constante que guarda el número de días para listar Complementos de Pago en CFDI Relacionados.',1), 29 => array('CFDIMX_PAGOS_CFDI_REL','chaine','0','Constante que habilita CFDI Relacionados en los Complementos de Pago.',1), 30 => array('CFDIMX_CCE_AUTO_INFO','chaine','0','Constante que habilita el autollenado de los datos fiscales para el Timbrado.',1), 31 => array('CFDIMX_PAGOS_LIST_MONEDAS','chaine','0','Constante que habilita el uso del Diccionario de Monedas.',1), 32 => array('CFDIMX_FAC_RET_LOCALES','chaine','0','Constante que habilita el uso de Retenciones Locales.',1), 33 => array('CFDIMX_TIMBRADO_NOMEMISOR','chaine','1','Constante que habilita utf8 en Nombre de Emisor.',1), 34 => array('CFDIMX_CORREO_FAC_AUTOMATICO','chaine','0','Constante que habilita el envio automatico de correos para Facturas.',0), 35 => array('CFDIMX_CORREO_FAC_FROM','chaine','1','Constante que guarda el correo de quien envia el correo.',0), 36 => array('CFDIMX_CORREO_FAC_SUBJECT','chaine','1','Constante que guarda el titulo del correo a enviar.',0), 37 => array('CFDIMX_CORREO_FAC_TEXT','chaine','1','Constante que guarda el texto que debe contener el correo.',0), 38 => array('CFDIMX_CORREO_FAC_CC','chaine','1','Constante que guarda los correos que se enviaran como copia.',0), 39 => array('CFDIMX_CORREO_FAC_BCC','chaine','1','Constante que guarda los correos que se enviaran como copia oculta.',0), 40 => array('CFDIMX_PDF_FAC_TXT_LIBRE','chaine','0','Constante que habilita un recuadro de texto libre en el PDF.',0), 41 => array('CFDIMX_PDF_FAC_TXT_LIBRE_TITULO','chaine','0','Constante que guarda el titulo del recuadro de campo libre en el PDF.',0), 42 => array('CFDIMX_PDF_FAC_TXT_LIBRE_CONTENIDO','chaine','0','Constante que guarda el contenido del recuadro de campo libre en el PDF.',0), 43 => array('CFDIMX_DESC_PROD_CAT_NOIDENTICFDI','chaine','0','Agrega a la descripción del Producto el campo Noidenticfdi del Catalogo',0), 44 => array('CFDIMX_DESC_PROD_NO_CAT_NOIDENTICFDI','chaine','0','Agrega a la descripción del Producto la informacion de la linea Noidenticfdi',0), 45 => array('CFDIMX_DESC_PROD_CAT_CTA_PREDIAL','chaine','0','Agrega a la descripción del Producto el campo Cuenta Predial del Catalogo',0), 46 => array('CFDIMX_DESC_PROD_NO_CAT_CTA_PREDIAL','chaine','0','Agrega a la descripción del Producto la informacion de la linea Cuenta Predial',0), 47 => array('CFDIMX_DESC_PROD_CAT_U_ADUANA','chaine','0','Agrega a la descripción del Producto el campo Unidad Aduana del Catalogo',0), 48 => array('CFDIMX_DESC_PROD_NO_CAT_U_ADUANA','chaine','0','Agrega a la descripción del Producto la informacion de la linea Unidad Aduana',0), 49 => array('CFDIMX_DESC_PROD_CAT_F_ARAN','chaine','0','Agrega a la descripción del Producto el campo Fraccion Arancelaria del Catalogo',0), 50 => array('CFDIMX_DESC_PROD_NO_CAT_F_ARAN','chaine','0','Agrega a la descripción del Producto la informacion de la linea Fraccion Arancelaria',0), 51 => array('CFDIMX_DESC_PROD_CAT_NUM_PEDIMENTO','chaine','0','Agrega a la descripción del Producto el campo Numero de Pedimento del Catalogo',0), 52 => array('CFDIMX_DESC_PROD_NO_CAT_NUM_PEDIMENTO','chaine','0','Agrega a la descripción del Producto la informacion de la linea Numero de Pedimento',0), 53 => array('CFDIMX_DESC_PROD_CAT_MARCA_ADUANA','chaine','0','Agrega a la descripción del Producto el campo Marca Aduana del Catalogo',0), 54 => array('CFDIMX_DESC_PROD_NO_CAT_MARCA_ADUANA','chaine','0','Agrega a la descripción del Producto la informacion de la linea Marca Aduana',0), 55 => array('CFDIMX_CORREO_CP_AUTOMATICO','chaine','0','Constante que habilita el envio automatico de correos para Complementos de Pagos.',0), 56 => array('CFDIMX_CORREO_CP_FROM','chaine','1','Constante que guarda el correo de quien envia el correo CP.',0), 57 => array('CFDIMX_CORREO_CP_SUBJECT','chaine','1','Constante que guarda el titulo del correo a enviar CP.',0), 58 => array('CFDIMX_CORREO_CP_TEXT','chaine','1','Constante que guarda el texto que debe contener el correo CP.',0), 59 => array('CFDIMX_CORREO_CP_CC','chaine','1','Constante que guarda los correos que se enviaran como copia CP.',0), 60 => array('CFDIMX_CORREO_CP_BCC','chaine','1','Constante que guarda los correos que se enviaran como copia oculta CP.',0), 61 => array('CFDIMX_PDF_CP_TXT_LIBRE','chaine','0','Constante que habilita un recuadro de texto libre en el PDF CP.',0), 62 => array('CFDIMX_PDF_CP_TXT_LIBRE_TITULO','chaine','0','Constante que guarda el titulo del recuadro de campo libre en el PDF CP.',0), 63 => array('CFDIMX_PDF_CP_TXT_LIBRE_CONTENIDO','chaine','0','Constante que guarda el contenido del recuadro de campo libre en el PDF CP.',0), 64 => array('CFDIMX_PAGOS_DEBUG_TIMBRADO','chaine','0','Visualización de la información que envia el módulo CFDIMX al WS',0), 65 => array('CFDIMX_NUM_LIST_FAC_TIM_HOME','chaine',10,'Cantidad de Facturas Timbradas que se visualizan en el inicio del Módulo',0), 66 => array('CFDIMX_NUM_LIST_FAC_NOTIM_HOME','chaine',10,'Cantidad de Facturas No Timbradas que se visualizan en el inicio del Módulo',0), 67 => array('CFDIMX_FAC_NOTIM_HOME_LIMITE','chaine',0,'Constante para restringir las 72 horas para visualizar Factura no Timbradas',0), 68 => array('CFDIMX_NUM_LIST_PAGO_TIM_HOME','chaine',10,'Cantidad de Complementos de Pago Timbrados que se visualizan en el inicio del Módulo',0), 69 => array('CFDIMX_NUM_LIST_PAGO_NOTIM_HOME','chaine',10,'Cantidad de Complementos de Pago No Timbrados que se visualizan en el inicio del Módulo',0), 70 => array('CFDIMX_ADMIN_LISTA_EMISORES','chaine', 0,'Constante que activa la Lista de Emisores',0), 71 => array('CFDIMX_NUM_PEDIMENTO','chaine', 0,'Constante que activa el uso de la Informacion Aduanera',0), 72 => array('CFDIMX_ISH','chaine', 0,'Constante que activa el uso de ISH',0), 73 => array('CFDIMX_CUENTA_PREDIAL','chaine', 0,'Constante que activa el uso de Cuenta Predial',0), 74 => array('CFDIMX_PDF_FAC_PERSONALIZACION','chaine', 0,'Constante que activa la personalización del PDF de la Factura Fiscal',0), 75 => array('CFDIMX_PDF_CP_PERSONALIZACION','chaine', 0,'Constante que activa la personalización del PDF del Complemento de Pago',0), 76 => array('CFDIMX_CP_LIMITE_REG_ADUANEROS','chaine', 10,'Constante que guarda el Limite de Regimenes Aduaneros en Carta Porte',0), 77 => array('CFDIMX_CP_LIMITE_REMOLQUES_MARITIMOS','chaine', 2,'Constante que guarda el Limite de Remolques Maritimos en Carta Porte',0), 78 => array('CFDIMX_CP_LIMITE_UBICACION_DOMICILIOS','chaine', 1,'Constante que guarda el Limite de Domicilios para cada Ubicacion',0), 79 => array('CFDIMX_CP_LIMITE_FT_DOMICILIOS','chaine', 1,'Constante que guarda el Limite de Domicilios para cada Figura Transporte',0) ); require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; dolibarr_set_const($this->db, "CFDIMX_VERSION_SAT", $this->version_cfdimx_sat, 'chaine', 0, 'Constante que guarda la versión de CFDI que maneja el SAT', $conf->entity); dolibarr_set_const($this->db, "CFDIMX_V_MAX_DOLI", $this->version_max_dolibarr, 'chaine', 1, 'Constante que almacena la versión Máxima de Dolibarr que soporta el módulo', $conf->entity); dolibarr_set_const($this->db, "CFDIMX_CONF_WS_PRODUCCION", $this->ws_produccion, 'chaine', 0, 'WS Produccion', $conf->entity); dolibarr_set_const($this->db, "CFDIMX_CONF_WS_PRUEBAS", $this->ws_pruebas, 'chaine', 0, 'WS Pruebas', $conf->entity); dolibarr_set_const($this->db, "CFDIMX_VERSION", $this->version_cfdimx, 'chaine', 0, 'Constante que guarda la versión de CFDIMX que se esta utilizando', $conf->entity); // Init Limit CP 3.1 dolibarr_set_const($this->db, "CFDIMX_CP_LIMITE_REG_ADUANEROS", 10, 'chaine', 0, 'Constante que guarda el Limite de Regimenes Aduaneros en Carta Porte', $conf->entity); dolibarr_set_const($this->db, "CFDIMX_CP_LIMITE_REMOLQUES_MARITIMOS", 2, 'chaine', 0, 'Constante que guarda el Limite de Remolques Maritimos en Carta Porte', $conf->entity); dolibarr_set_const($this->db, "CFDIMX_CP_LIMITE_UBICACION_DOMICILIOS", 1, 'chaine', 0, 'Constante que guarda el Limite de Domicilios para cada Ubicacion', $conf->entity); dolibarr_set_const($this->db, "CFDIMX_CP_LIMITE_FT_DOMICILIOS", 1, 'chaine', 0, 'Constante que guarda el Limite de Domicilios para cada Figura Transporte', $conf->entity); // Some keys to add into the overwriting translation tables /*$this->overwrite_translation = array( 'en_US:ParentCompany'=>'Parent company or reseller', 'fr_FR:ParentCompany'=>'Maison mère ou revendeur' )*/ if (!isset($conf->cfdimx) || !isset($conf->cfdimx->enabled)) { $conf->cfdimx = new stdClass(); $conf->cfdimx->enabled = 0; } // Array to add new pages in new tabs // 'invoice:+tabfactclientglobal:Agrupar Facturas:@hwtitle:true:/cfdimx/facture/agrupar_facturas.php?facid=__ID__', -> next version $this->tabs = array( 'invoice:+tabfactclient:CFDI:@hwtitle:true:/cfdimx/facture/card.php?facid=__ID__', 'payment:+tabcomplementopago:Complemento de Pago:@hwtitle:true:/cfdimx/paiement/card.php?id=__ID__', 'thirdparty:+tabCFDIMXSociete:CFDIMX:@hwtitle:true:/cfdimx/societe/card.php?socid=__ID__', 'product:+tabCFDIMXProduct:CFDIMX:@hwtitle:true:/cfdimx/product/card_cce.php?id=__ID__' ); // 'thirdparty:+tabCFDIMXSociete:CFDIMX:@hwtitle:true:/cfdimx/societe/facturas.php?socid=__ID__', // 'product:+tabProductDatosCCE:Datos CCE:@hwtitle:true:/cfdimx/product/card_cce.php?id=__ID__', // 'product:+tabProductDatosCP:Datos Carta Porte:@hwtitle:true:/cfdimx/product/card_cp.php?id=__ID__' // 'thirdparty:+tablistfact:Facturas - CFDI:@hwtitle:true:/cfdimx/societe/facturas.php?socid=__ID__', // 'thirdparty:+tablistpagos:Pagos - CFDI:@hwtitle:true:/cfdimx/societe/pagos.php?socid=__ID__', // 'thirdparty:+tabdomicilioclient:Domicilio Fiscal:@hwtitle:true:/cfdimx/societe/card.php?socid=__ID__', // 'thirdparty:+tabDatosCCE:Datos CCE:@hwtitle:true:/cfdimx/societe/card_cce.php?socid=__ID__', // Example: // $this->tabs[] = array('data'=>'objecttype:+tabname1:Title1:mylangfile@cfdimx:$user->rights->cfdimx->read:/cfdimx/mynewtab1.php?id=__ID__'); // To add a new tab identified by code tabname1 // $this->tabs[] = array('data'=>'objecttype:+tabname2:SUBSTITUTION_Title2:mylangfile@cfdimx:$user->rights->othermodule->read:/cfdimx/mynewtab2.php?id=__ID__', // To add another new tab identified by code tabname2. Label will be result of calling all substitution functions on 'Title2' key. // $this->tabs[] = array('data'=>'objecttype:-tabname:NU:conditiontoremove'); // To remove an existing tab identified by code tabname // // Where objecttype can be // 'categories_x' to add a tab in category view (replace 'x' by type of category (0=product, 1=supplier, 2=customer, 3=member) // 'contact' to add a tab in contact view // 'contract' to add a tab in contract view // 'group' to add a tab in group view // 'intervention' to add a tab in intervention view // 'invoice' to add a tab in customer invoice view // 'invoice_supplier' to add a tab in supplier invoice view // 'member' to add a tab in fundation member view // 'opensurveypoll' to add a tab in opensurvey poll view // 'order' to add a tab in sale order view // 'order_supplier' to add a tab in supplier order view // 'payment' to add a tab in payment view // 'payment_supplier' to add a tab in supplier payment view // 'product' to add a tab in product view // 'propal' to add a tab in propal view // 'project' to add a tab in project view // 'stock' to add a tab in stock view // 'thirdparty' to add a tab in third party view // 'user' to add a tab in user view // Dictionaries $this->dictionnaries["langs"] = "cfdmimx@cfdmimx"; // tabname $this->dictionnaries["tabname"][0] = MAIN_DB_PREFIX."c_cfdimx_clave_prodserv"; //CFDI - Clave Producto Servicio $this->dictionnaries["tabname"][1] = MAIN_DB_PREFIX."c_cfdimx_unidad_medida"; //CFDI - Unidad de Medida $this->dictionnaries["tabname"][2] = MAIN_DB_PREFIX."c_cfdimx_uso_cfdi"; //CFDI - Uso CFDI $this->dictionnaries["tabname"][3] = MAIN_DB_PREFIX."c_cfdimx_tipo_rel"; //CFDI - Tipo Relación $this->dictionnaries["tabname"][4] = MAIN_DB_PREFIX."c_cfdimx_regimen_f"; //CFDI - Regimen Fiscal $this->dictionnaries["tabname"][5] = MAIN_DB_PREFIX."c_cfdimx_objimpuesto"; //CFDI - Objeto Impuesto $this->dictionnaries["tabname"][6] = MAIN_DB_PREFIX."c_cfdimx_exportacion"; //CFDI - Clave Exportación $this->dictionnaries["tabname"][7] = MAIN_DB_PREFIX."c_cfdimx_formapago"; //CFDI - Formas de Pago $this->dictionnaries["tabname"][8] = MAIN_DB_PREFIX."c_cfdimx_tipo_facturas"; //CFDI - Tipos de Facturas $this->dictionnaries["tabname"][9] = MAIN_DB_PREFIX."c_cfdimx_meses"; //CFDI Global - Meses $this->dictionnaries["tabname"][10] = MAIN_DB_PREFIX."c_cfdimx_periodicidad"; //CFDI Global - Periodicidad $this->dictionnaries["tabname"][11] = MAIN_DB_PREFIX."c_cfdimx_incoterm"; //CCE - Claves Incoterm $this->dictionnaries["tabname"][12] = MAIN_DB_PREFIX."c_cfdimx_unidad_aduana"; //CCE - Clave Unidad Aduana $this->dictionnaries["tabname"][13] = MAIN_DB_PREFIX."c_cfdimx_f_arancelaria"; //CCE - Clave Fracción Arancelaria $this->dictionnaries["tabname"][14] = MAIN_DB_PREFIX."c_cfdimx_motivo_traslado"; //CCE - Motivo Traslado $this->dictionnaries["tabname"][15] = MAIN_DB_PREFIX."c_cfdimx_clave_pedimento"; //CCE - Clave Pedimento $this->dictionnaries["tabname"][16] = MAIN_DB_PREFIX."c_cfdimx_tipo_operacion"; //CCE - Tipo Operacion $this->dictionnaries["tabname"][17] = MAIN_DB_PREFIX."c_cfdimx_regimen_aduanero"; //CP - Regimen Aduanero $this->dictionnaries["tabname"][18] = MAIN_DB_PREFIX."c_cfdimx_registro_istmo"; //CP - Registro ISTMO $this->dictionnaries["tabname"][19] = MAIN_DB_PREFIX."c_cfdimx_clave_transporte"; //CP - Clave Transporte $this->dictionnaries["tabname"][20] = MAIN_DB_PREFIX."c_cfdimx_pais"; //CP - Clave Pais $this->dictionnaries["tabname"][21] = MAIN_DB_PREFIX."c_cfdimx_tipo_estacion"; //CP - Clave Tipo Estación $this->dictionnaries["tabname"][22] = MAIN_DB_PREFIX."c_cfdimx_estaciones"; //CP - Estaciones $this->dictionnaries["tabname"][23] = MAIN_DB_PREFIX."c_cfdimx_clave_unidad_peso"; //CP - Clave Unidad Peso $this->dictionnaries["tabname"][24] = MAIN_DB_PREFIX."c_cfdimx_clave_prodserv_cp"; //CP - Clave Producto Servicio CP $this->dictionnaries["tabname"][25] = MAIN_DB_PREFIX."c_cfdimx_clave_prod_stcc"; //CP - Clave Producto STCC $this->dictionnaries["tabname"][26] = MAIN_DB_PREFIX."c_cfdimx_material_peligroso"; //CP - Material Peligroso $this->dictionnaries["tabname"][27] = MAIN_DB_PREFIX."c_cfdimx_tipo_embalaje"; //CP - Tipo de Embalaje $this->dictionnaries["tabname"][28] = MAIN_DB_PREFIX."c_cfdimx_tipo_permiso"; //CP - Tipo de Permiso $this->dictionnaries["tabname"][29] = MAIN_DB_PREFIX."c_cfdimx_config_autotransporte"; //CP - Configuración AutoTransporte $this->dictionnaries["tabname"][30] = MAIN_DB_PREFIX."c_cfdimx_subtipo_rem"; //CP - Subtipo Remolque $this->dictionnaries["tabname"][31] = MAIN_DB_PREFIX."c_cfdimx_config_maritima"; //CP - Configuración Maritima $this->dictionnaries["tabname"][32] = MAIN_DB_PREFIX."c_cfdimx_clave_tipo_carga"; //CP - Clave Tipo de Carga $this->dictionnaries["tabname"][33] = MAIN_DB_PREFIX."c_cfdimx_numaut_naviero"; //CP - Número de Autorización Naviero $this->dictionnaries["tabname"][34] = MAIN_DB_PREFIX."c_cfdimx_contenedor_mat"; //CP - Clave Contenedor Maritimo $this->dictionnaries["tabname"][35] = MAIN_DB_PREFIX."c_cfdimx_codtrans_aereo"; //CP - Código Transporte Aereo $this->dictionnaries["tabname"][36] = MAIN_DB_PREFIX."c_cfdimx_tipo_servicio"; //CP - Clave Tipo de Servicio $this->dictionnaries["tabname"][37] = MAIN_DB_PREFIX."c_cfdimx_tipo_trafico"; //CP - Clave Tipo Tráfico $this->dictionnaries["tabname"][38] = MAIN_DB_PREFIX."c_cfdimx_derecho_paso"; //CP - Clave Derechos de Paso $this->dictionnaries["tabname"][39] = MAIN_DB_PREFIX."c_cfdimx_tipo_carro"; //CP - Clave Tipo Carro $this->dictionnaries["tabname"][40] = MAIN_DB_PREFIX."c_cfdimx_contenedor_ferr"; //CP - Clave Contenedor Ferroviario $this->dictionnaries["tabname"][41] = MAIN_DB_PREFIX."c_cfdimx_parte_transporte"; //CP - Clave Parte Transporte $this->dictionnaries["tabname"][42] = MAIN_DB_PREFIX."c_cfdimx_tipo_figura_transporte"; //CP - Clave Figura Transporte $this->dictionnaries["tabname"][43] = MAIN_DB_PREFIX."c_cfdimx_sector_cofepris"; //CP - Sector COFEPRIS $this->dictionnaries["tabname"][44] = MAIN_DB_PREFIX."c_cfdimx_formafarmaceutica"; //CP - Forma Farmaceutica $this->dictionnaries["tabname"][45] = MAIN_DB_PREFIX."c_cfdimx_condicionesespeciales"; //CP - Condiciones Especiales $this->dictionnaries["tabname"][46] = MAIN_DB_PREFIX."c_cfdimx_moneda"; //CFDI, CCE, CP - Moneda $this->dictionnaries["tabname"][47] = MAIN_DB_PREFIX."c_cfdimx_tipo_materia"; //CP - Tipo de Materia // tablib $this->dictionnaries["tablib"][0] = "CFDI ".$this->version_cfdimx_sat." - Claves Producto-Servicio"; //CFDI - Clave Producto Servicio $this->dictionnaries["tablib"][1] = "CFDI ".$this->version_cfdimx_sat." - Unidades de medida CFDI"; //CFDI - Unidad de Medida $this->dictionnaries["tablib"][2] = "CFDI ".$this->version_cfdimx_sat." - Uso CFDI"; //CFDI - Uso CFDI $this->dictionnaries["tablib"][3] = "CFDI ".$this->version_cfdimx_sat." - Tipo Relación"; //CFDI - Tipo Relación $this->dictionnaries["tablib"][4] = "CFDI ".$this->version_cfdimx_sat." - Regimen Fiscal"; //CFDI - Regimen Fiscal $this->dictionnaries["tablib"][5] = "CFDI ".$this->version_cfdimx_sat." - Objeto de Impuesto"; //CFDI - Objeto Impuesto $this->dictionnaries["tablib"][6] = "CFDI ".$this->version_cfdimx_sat." - Exportación"; //CFDI - Clave Exportación $this->dictionnaries["tablib"][7] = "CFDI ".$this->version_cfdimx_sat." - Formas de Pago"; //CFDI - Formas de Pago $this->dictionnaries["tablib"][8] = "CFDI ".$this->version_cfdimx_sat." - Tipos de Facturas"; //CFDI - Tipos de Facturas $this->dictionnaries["tablib"][9] = "CFDI Global ".$this->version_cfdimx_sat." - Meses"; //CFDI Global - Meses $this->dictionnaries["tablib"][10] = "CFDI Global ".$this->version_cfdimx_sat." - Periodicidad"; //CFDI Global - Periodicidad $this->dictionnaries["tablib"][11] = "CCE (Comercio Exterior) ".$this->version_cce." - Claves Incoterm"; //CCE - Claves Incoterm $this->dictionnaries["tablib"][12] = "CCE (Comercio Exterior) ".$this->version_cce." - Unidades Aduana"; //CCE - Clave Unidad Aduana $this->dictionnaries["tablib"][13] = "CCE (Comercio Exterior) ".$this->version_cce." - Fracción Arancelaria"; //CCE - Clave Fracción Arancelaria $this->dictionnaries["tablib"][14] = "CCE (Comercio Exterior) ".$this->version_cce." - Motivo Traslado"; //CCE - Motivo Traslado $this->dictionnaries["tablib"][15] = "CCE (Comercio Exterior) ".$this->version_cce." - Clave Pedimento"; //CCE - Clave Pedimento $this->dictionnaries["tablib"][16] = "CCE (Comercio Exterior) ".$this->version_cce." - Tipo de Operación"; //CCE - Tipo de Operación $this->dictionnaries["tablib"][17] = "Carta Porte ".$this->version_cp." - Regimen Aduanero"; //CP - Regimen Aduanero $this->dictionnaries["tablib"][18] = "Carta Porte ".$this->version_cp." - Registro ISTMO"; //CP - Registro ISMTO $this->dictionnaries["tablib"][19] = "Carta Porte ".$this->version_cp." - Claves Transporte"; //CP - Clave Transporte $this->dictionnaries["tablib"][20] = "CFDI, CCE, Carta Porte - País"; //CP - Clave Pais $this->dictionnaries["tablib"][21] = "Carta Porte ".$this->version_cp." - Tipo Estación"; //CP - Clave Tipo Estación $this->dictionnaries["tablib"][22] = "Carta Porte ".$this->version_cp." - Estaciones"; //CP - Estaciones $this->dictionnaries["tablib"][23] = "Carta Porte ".$this->version_cp." - Claves Unidad Peso"; //CP - Clave Unidad Peso $this->dictionnaries["tablib"][24] = "Carta Porte ".$this->version_cp." - Claves Producto-Servicio CP"; //CP - Clave Producto Servicio CP $this->dictionnaries["tablib"][25] = "Carta Porte ".$this->version_cp." - Claves Producto STCC"; //CP - Clave Producto STCC $this->dictionnaries["tablib"][26] = "Carta Porte ".$this->version_cp." - Claves Material Peligroso"; //CP - Material Peligroso $this->dictionnaries["tablib"][27] = "Carta Porte ".$this->version_cp." - Tipo Embalaje"; //CP - Tipo de Embalaje $this->dictionnaries["tablib"][28] = "Carta Porte ".$this->version_cp." - Tipo Permiso"; //CP - Tipo de Permiso $this->dictionnaries["tablib"][29] = "Carta Porte ".$this->version_cp." - Configuración AutoTransporte"; //CP - Configuración AutoTransporte $this->dictionnaries["tablib"][30] = "Carta Porte ".$this->version_cp." - Sub. Tipo Remolque"; //CP - Subtipo Remolque $this->dictionnaries["tablib"][31] = "Carta Porte ".$this->version_cp." - Configuración Maritima"; //CP - Configuración Maritima $this->dictionnaries["tablib"][32] = "Carta Porte ".$this->version_cp." - Claves Tipo Carga"; //CP - Clave Tipo de Carga $this->dictionnaries["tablib"][33] = "Carta Porte ".$this->version_cp." - Claves Num. Autorización Naviera"; //CP - Número de Autorización Naviero $this->dictionnaries["tablib"][34] = "Carta Porte ".$this->version_cp." - Claves Contenedores Maritimos"; //CP - Clave Contenedor Maritimo $this->dictionnaries["tablib"][35] = "Carta Porte ".$this->version_cp." - Claves Transporte Aereo"; //CP - Código Transporte Aereo $this->dictionnaries["tablib"][36] = "Carta Porte ".$this->version_cp." - Tipo de Servicio"; //CP - Clave Tipo de Servicio $this->dictionnaries["tablib"][37] = "Carta Porte ".$this->version_cp." - Tipo de Tráfico"; //CP - Clave Tipo Tráfico $this->dictionnaries["tablib"][38] = "Carta Porte ".$this->version_cp." - Derechos de Paso"; //CP - Clave Derechos de Paso $this->dictionnaries["tablib"][39] = "Carta Porte ".$this->version_cp." - Tipo de Carro"; //CP - Clave Tipo Carro $this->dictionnaries["tablib"][40] = "Carta Porte ".$this->version_cp." - Claves Contenedores Ferroviarios"; //CP - Clave Contenedor Ferroviario $this->dictionnaries["tablib"][41] = "Carta Porte ".$this->version_cp." - Partes Transporte"; //CP - Clave Parte Transporte $this->dictionnaries["tablib"][42] = "Carta Porte ".$this->version_cp." - Tipo Figura Transporte"; //CP - Clave Figura Transporte $this->dictionnaries["tablib"][43] = "Carta Porte ".$this->version_cp." - Sector COFEPRIS"; //CP - Sector COFEPRIS $this->dictionnaries["tablib"][44] = "Carta Porte ".$this->version_cp." - Forma Farmaceutica"; //CP - Forma Farmaceutica $this->dictionnaries["tablib"][45] = "Carta Porte ".$this->version_cp." - Condiciones Especiales"; //CP - Condiciones Especiales $this->dictionnaries["tablib"][46] = "CFDI, CCE, Carta Porte ".$this->version_cp." - Moneda"; //CFDI, CCE, CP - Moneda $this->dictionnaries["tablib"][47] = "Carta Porte ".$this->version_cp." - Tipo Materia"; //CP - Tipo de Materia // tabsql //CFDI - Clave Producto Servicio $this->dictionnaries["tabsql"][0] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_clave_prodserv as f'; $this->dictionnaries["tabsql"][1] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_unidad_medida as f'; $this->dictionnaries["tabsql"][2] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_uso_cfdi as f'; $this->dictionnaries["tabsql"][3] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_tipo_rel as f'; $this->dictionnaries["tabsql"][4] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_regimen_f as f'; $this->dictionnaries["tabsql"][5] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_objimpuesto as f'; $this->dictionnaries["tabsql"][6] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_exportacion as f'; $this->dictionnaries["tabsql"][7] = 'SELECT f.rowid as rowid, f.code, f.label, f.cod_doli, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_formapago as f'; $this->dictionnaries["tabsql"][8] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_tipo_facturas as f'; $this->dictionnaries["tabsql"][9] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_meses as f'; $this->dictionnaries["tabsql"][10] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_periodicidad as f'; $this->dictionnaries["tabsql"][11] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_incoterm as f'; $this->dictionnaries["tabsql"][12] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_unidad_aduana as f'; $this->dictionnaries["tabsql"][13] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_f_arancelaria as f'; $this->dictionnaries["tabsql"][14] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_motivo_traslado as f'; $this->dictionnaries["tabsql"][15] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_clave_pedimento as f'; $this->dictionnaries["tabsql"][16] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_tipo_operacion as f'; $this->dictionnaries["tabsql"][17] = 'SELECT f.rowid as rowid, f.code, f.label, f.impoexpo, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_regimen_aduanero as f'; $this->dictionnaries["tabsql"][18] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_registro_istmo as f'; $this->dictionnaries["tabsql"][19] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_clave_transporte as f'; $this->dictionnaries["tabsql"][20] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_pais as f'; $this->dictionnaries["tabsql"][21] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_tipo_estacion as f'; $this->dictionnaries["tabsql"][22] = 'SELECT f.rowid as rowid, f.code, f.label, f.clave_transporte, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_estaciones as f'; $this->dictionnaries["tabsql"][23] = 'SELECT f.rowid as rowid, f.code, f.label, f.descripcion, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_clave_unidad_peso as f'; $this->dictionnaries["tabsql"][24] = 'SELECT f.rowid as rowid, f.code, f.label, f.materialpeligroso, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_clave_prodserv_cp as f'; $this->dictionnaries["tabsql"][25] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_clave_prod_stcc as f'; $this->dictionnaries["tabsql"][26] = 'SELECT f.rowid as rowid, f.code, f.label, f.clasedivision, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_material_peligroso as f'; $this->dictionnaries["tabsql"][27] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_tipo_embalaje as f'; $this->dictionnaries["tabsql"][28] = 'SELECT f.rowid as rowid, f.code, f.label, f.clave_transporte, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_tipo_permiso as f'; $this->dictionnaries["tabsql"][29] = 'SELECT f.rowid as rowid, f.code, f.label, f.numeroejes, f.numerollantas, f.remolque, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_config_autotransporte as f'; $this->dictionnaries["tabsql"][30] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_subtipo_rem as f'; $this->dictionnaries["tabsql"][31] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_config_maritima as f'; $this->dictionnaries["tabsql"][32] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_clave_tipo_carga as f'; $this->dictionnaries["tabsql"][33] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_numaut_naviero as f'; $this->dictionnaries["tabsql"][34] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_contenedor_mat as f'; $this->dictionnaries["tabsql"][35] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_codtrans_aereo as f'; $this->dictionnaries["tabsql"][36] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_tipo_servicio as f'; $this->dictionnaries["tabsql"][37] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_tipo_trafico as f'; $this->dictionnaries["tabsql"][38] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_derecho_paso as f'; $this->dictionnaries["tabsql"][39] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_tipo_carro as f'; $this->dictionnaries["tabsql"][40] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_contenedor_ferr as f'; $this->dictionnaries["tabsql"][41] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_parte_transporte as f'; $this->dictionnaries["tabsql"][42] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_tipo_figura_transporte as f'; $this->dictionnaries["tabsql"][43] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_sector_cofepris as f'; $this->dictionnaries["tabsql"][44] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_formafarmaceutica as f'; $this->dictionnaries["tabsql"][45] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_condicionesespeciales as f'; $this->dictionnaries["tabsql"][46] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_moneda as f'; $this->dictionnaries["tabsql"][47] = 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_cfdimx_tipo_materia as f'; // tabsqlsort $this->dictionnaries["tabsqlsort"][0] = "code ASC"; //CFDI - Clave Producto Servicio $this->dictionnaries["tabsqlsort"][1] = "code ASC"; //CFDI - Unidad de Medida $this->dictionnaries["tabsqlsort"][2] = "code ASC"; //CFDI - Uso CFDI $this->dictionnaries["tabsqlsort"][3] = "code ASC"; //CFDI - Tipo Relación $this->dictionnaries["tabsqlsort"][4] = "code ASC"; //CFDI - Regimen Fiscal $this->dictionnaries["tabsqlsort"][5] = "code ASC"; //CFDI - Objeto Impuesto $this->dictionnaries["tabsqlsort"][6] = "code ASC"; //CFDI - Clave Exportación $this->dictionnaries["tabsqlsort"][7] = "code ASC"; //CFDI - Formas de Pago $this->dictionnaries["tabsqlsort"][8] = "code ASC"; //CFDI - Tipos de Facturas $this->dictionnaries["tabsqlsort"][9] = "code ASC"; //CFDI Global - Meses $this->dictionnaries["tabsqlsort"][10] = "code ASC"; //CFDI Global - Periodicidad $this->dictionnaries["tabsqlsort"][11] = "code ASC"; //CCE - Claves Incoterm $this->dictionnaries["tabsqlsort"][12] = "code ASC"; //CCE - Clave Unidad Aduana $this->dictionnaries["tabsqlsort"][13] = "code ASC"; //CCE - Clave Fracción Arancelaria $this->dictionnaries["tabsqlsort"][14] = "code ASC"; //CCE - Motivo Traslado $this->dictionnaries["tabsqlsort"][15] = "code ASC"; //CCE - Clave Pedimento $this->dictionnaries["tabsqlsort"][16] = "code ASC"; //CCE - Tipo Operacion $this->dictionnaries["tabsqlsort"][17] = "code ASC"; //CP - Regimen Aduanero $this->dictionnaries["tabsqlsort"][18] = "code ASC"; //CP - Registro ISTMO $this->dictionnaries["tabsqlsort"][19] = "code ASC"; //CP - Clave Transporte $this->dictionnaries["tabsqlsort"][20] = "code ASC"; //CP - Clave Pais $this->dictionnaries["tabsqlsort"][21] = "code ASC"; //CP - Clave Tipo Estación $this->dictionnaries["tabsqlsort"][22] = "code ASC"; //CP - Estaciones $this->dictionnaries["tabsqlsort"][23] = "code ASC"; //CP - Clave Unidad Peso $this->dictionnaries["tabsqlsort"][24] = "code ASC"; //CP - Clave Producto Servicio CP $this->dictionnaries["tabsqlsort"][25] = "code ASC"; //CP - Clave Producto STCC $this->dictionnaries["tabsqlsort"][26] = "code ASC"; //CP - Material Peligroso $this->dictionnaries["tabsqlsort"][27] = "code ASC"; //CP - Tipo de Embalaje $this->dictionnaries["tabsqlsort"][28] = "code ASC"; //CP - Tipo de Permiso $this->dictionnaries["tabsqlsort"][29] = "code ASC"; //CP - Configuración AutoTransporte $this->dictionnaries["tabsqlsort"][30] = "code ASC"; //CP - Subtipo Remolque $this->dictionnaries["tabsqlsort"][31] = "code ASC"; //CP - Configuración Maritima $this->dictionnaries["tabsqlsort"][32] = "code ASC"; //CP - Clave Tipo de Carga $this->dictionnaries["tabsqlsort"][33] = "code ASC"; //CP - Número de Autorización Naviero $this->dictionnaries["tabsqlsort"][34] = "code ASC"; //CP - Clave Contenedor Maritimo $this->dictionnaries["tabsqlsort"][35] = "code ASC"; //CP - Código Transporte Aereo $this->dictionnaries["tabsqlsort"][36] = "code ASC"; //CP - Clave Tipo de Servicio $this->dictionnaries["tabsqlsort"][37] = "code ASC"; //CP - Clave Tipo Tráfico $this->dictionnaries["tabsqlsort"][38] = "code ASC"; //CP - Clave Derechos de Paso $this->dictionnaries["tabsqlsort"][39] = "code ASC"; //CP - Clave Tipo Carro $this->dictionnaries["tabsqlsort"][40] = "code ASC"; //CP - Clave Contenedor Ferroviario $this->dictionnaries["tabsqlsort"][41] = "code ASC"; //CP - Clave Parte Transporte $this->dictionnaries["tabsqlsort"][42] = "code ASC"; //CP - Clave Figura Transporte $this->dictionnaries["tabsqlsort"][43] = "code ASC"; //CP - Sector COFEPRIS $this->dictionnaries["tabsqlsort"][44] = "code ASC"; //CP - Forma Farmaceutica $this->dictionnaries["tabsqlsort"][45] = "code ASC"; //CP - Condiciones Especiales $this->dictionnaries["tabsqlsort"][46] = "code ASC"; //CFDI, CCE, CP - Moneda $this->dictionnaries["tabsqlsort"][47] = "code ASC"; //CP - Tipo de Materia // tabfield $this->dictionnaries["tabfield"][0] = "code,label"; //CFDI - Clave Producto Servicio $this->dictionnaries["tabfield"][1] = "code,label"; //CFDI - Unidad de Medida $this->dictionnaries["tabfield"][2] = "code,label"; //CFDI - Uso CFDI $this->dictionnaries["tabfield"][3] = "code,label"; //CFDI - Tipo Relación $this->dictionnaries["tabfield"][4] = "code,label"; //CFDI - Regimen Fiscal $this->dictionnaries["tabfield"][5] = "code,label"; //CFDI - Objeto Impuesto $this->dictionnaries["tabfield"][6] = "code,label"; //CFDI - Clave Exportación $this->dictionnaries["tabfield"][7] = "code,label,cod_doli"; //CFDI - Formas de Pago $this->dictionnaries["tabfield"][8] = "code,label"; //CFDI - Tipos de Facturas $this->dictionnaries["tabfield"][9] = "code,label"; //CFDI Global - Meses $this->dictionnaries["tabfield"][10] = "code,label"; //CFDI Global - Periodicidad $this->dictionnaries["tabfield"][11] = "code,label"; //CCE - Claves Incoterm $this->dictionnaries["tabfield"][12] = "code,label"; //CCE - Clave Unidad Aduana $this->dictionnaries["tabfield"][13] = "code,label"; //CCE - Clave Fracción Arancelaria $this->dictionnaries["tabfield"][14] = "code,label"; //CCE - Motivo Traslado $this->dictionnaries["tabfield"][15] = "code,label"; //CCE - Clave Pedimento $this->dictionnaries["tabfield"][16] = "code,label"; //CCE - Tipo Operacion $this->dictionnaries["tabfield"][17] = "code,label,impoexpo"; //CP - Registo Aduanero $this->dictionnaries["tabfield"][18] = "code,label"; //CP - Regimen ISTMO $this->dictionnaries["tabfield"][19] = "code,label"; //CP - Clave Transporte $this->dictionnaries["tabfield"][20] = "code,label"; //CP - Clave Pais $this->dictionnaries["tabfield"][21] = "code,label"; //CP - Clave Tipo Estación $this->dictionnaries["tabfield"][22] = "code,label,clave_transporte"; //CP - Estaciones $this->dictionnaries["tabfield"][23] = "code,label,descripcion"; //CP - Clave Unidad Peso $this->dictionnaries["tabfield"][24] = "code,label,materialpeligroso"; //CP - Clave Producto Servicio CP $this->dictionnaries["tabfield"][25] = "code,label"; //CP - Clave Producto STCC $this->dictionnaries["tabfield"][26] = "code,label,clasedivision"; //CP - Material Peligroso $this->dictionnaries["tabfield"][27] = "code,label"; //CP - Tipo de Embalaje $this->dictionnaries["tabfield"][28] = "code,label,clave_transporte"; //CP - Tipo de Permiso $this->dictionnaries["tabfield"][29] = "code,label,numeroejes,numerollantas,remolque"; //CP - Configuración AutoTransporte $this->dictionnaries["tabfield"][30] = "code,label"; //CP - Subtipo Remolque $this->dictionnaries["tabfield"][31] = "code,label"; //CP - Configuración Maritima $this->dictionnaries["tabfield"][32] = "code,label"; //CP - Clave Tipo de Carga $this->dictionnaries["tabfield"][33] = "code,label"; //CP - Número de Autorización Naviero $this->dictionnaries["tabfield"][34] = "code,label"; //CP - Clave Contenedor Maritimo $this->dictionnaries["tabfield"][35] = "code,label"; //CP - Código Transporte Aereo $this->dictionnaries["tabfield"][36] = "code,label"; //CP - Clave Tipo de Servicio $this->dictionnaries["tabfield"][37] = "code,label"; //CP - Clave Tipo Tráfico $this->dictionnaries["tabfield"][38] = "code,label"; //CP - Clave Derechos de Paso $this->dictionnaries["tabfield"][39] = "code,label"; //CP - Clave Tipo Carro $this->dictionnaries["tabfield"][40] = "code,label"; //CP - Clave Contenedor Ferroviario $this->dictionnaries["tabfield"][41] = "code,label"; //CP - Clave Parte Transporte $this->dictionnaries["tabfield"][42] = "code,label"; //CP - Clave Figura Transporte $this->dictionnaries["tabfield"][43] = "code,label"; //CP - Sector COFEPRIS $this->dictionnaries["tabfield"][44] = "code,label"; //CP - Forma Farmaceutica $this->dictionnaries["tabfield"][45] = "code,label"; //CP - Condiciones Especiales $this->dictionnaries["tabfield"][46] = "code,label"; //CFDI, CCE, CP - Moneda $this->dictionnaries["tabfield"][47] = "code,label"; //CP - Tipo de Materia // tabfieldvalue $this->dictionnaries["tabfieldvalue"][0] = "code,label"; //CFDI - Clave Producto Servicio $this->dictionnaries["tabfieldvalue"][1] = "code,label"; //CFDI - Unidad de Medida $this->dictionnaries["tabfieldvalue"][2] = "code,label"; //CFDI - Uso CFDI $this->dictionnaries["tabfieldvalue"][3] = "code,label"; //CFDI - Tipo Relación $this->dictionnaries["tabfieldvalue"][4] = "code,label"; //CFDI - Regimen Fiscal $this->dictionnaries["tabfieldvalue"][5] = "code,label"; //CFDI - Objeto Impuesto $this->dictionnaries["tabfieldvalue"][6] = "code,label"; //CFDI - Clave Exportación $this->dictionnaries["tabfieldvalue"][7] = "code,label,cod_doli"; //CFDI - Formas de Pago $this->dictionnaries["tabfieldvalue"][8] = "code,label"; //CFDI - Tipos de Facturas $this->dictionnaries["tabfieldvalue"][9] = "code,label"; //CFDI Global - Meses $this->dictionnaries["tabfieldvalue"][10] = "code,label"; //CFDI Global - Periodicidad $this->dictionnaries["tabfieldvalue"][11] = "code,label"; //CCE - Claves Incoterm $this->dictionnaries["tabfieldvalue"][12] = "code,label"; //CCE - Clave Unidad Aduana $this->dictionnaries["tabfieldvalue"][13] = "code,label"; //CCE - Clave Fracción Arancelaria $this->dictionnaries["tabfieldvalue"][14] = "code,label"; //CCE - Motivo Traslado $this->dictionnaries["tabfieldvalue"][15] = "code,label"; //CCE - Clave Pedimento $this->dictionnaries["tabfieldvalue"][16] = "code,label"; //CCE - Tipo Operacion $this->dictionnaries["tabfieldvalue"][17] = "code,label,impoexpo"; //CP - Registo Aduanero $this->dictionnaries["tabfieldvalue"][18] = "code,label"; //CP - Regimen ISTMO $this->dictionnaries["tabfieldvalue"][19] = "code,label"; //CP - Clave Transporte $this->dictionnaries["tabfieldvalue"][20] = "code,label"; //CP - Clave Pais $this->dictionnaries["tabfieldvalue"][21] = "code,label"; //CP - Clave Tipo Estación $this->dictionnaries["tabfieldvalue"][22] = "code,label,clave_transporte"; //CP - Estaciones $this->dictionnaries["tabfieldvalue"][23] = "code,label,descripcion"; //CP - Clave Unidad Peso $this->dictionnaries["tabfieldvalue"][24] = "code,label,materialpeligroso"; //CP - Clave Producto Servicio CP $this->dictionnaries["tabfieldvalue"][25] = "code,label"; //CP - Clave Producto STCC $this->dictionnaries["tabfieldvalue"][26] = "code,label,clasedivision"; //CP - Material Peligroso $this->dictionnaries["tabfieldvalue"][27] = "code,label"; //CP - Tipo de Embalaje $this->dictionnaries["tabfieldvalue"][28] = "code,label,clave_transporte"; //CP - Tipo de Permiso $this->dictionnaries["tabfieldvalue"][29] = "code,label,numeroejes,numerollantas,remolque"; //CP - Configuración AutoTransporte $this->dictionnaries["tabfieldvalue"][30] = "code,label"; //CP - Subtipo Remolque $this->dictionnaries["tabfieldvalue"][31] = "code,label"; //CP - Configuración Maritima $this->dictionnaries["tabfieldvalue"][32] = "code,label"; //CP - Clave Tipo de Carga $this->dictionnaries["tabfieldvalue"][33] = "code,label"; //CP - Número de Autorización Naviero $this->dictionnaries["tabfieldvalue"][34] = "code,label"; //CP - Clave Contenedor Maritimo $this->dictionnaries["tabfieldvalue"][35] = "code,label"; //CP - Código Transporte Aereo $this->dictionnaries["tabfieldvalue"][36] = "code,label"; //CP - Clave Tipo de Servicio $this->dictionnaries["tabfieldvalue"][37] = "code,label"; //CP - Clave Tipo Tráfico $this->dictionnaries["tabfieldvalue"][38] = "code,label"; //CP - Clave Derechos de Paso $this->dictionnaries["tabfieldvalue"][39] = "code,label"; //CP - Clave Tipo Carro $this->dictionnaries["tabfieldvalue"][40] = "code,label"; //CP - Clave Contenedor Ferroviario $this->dictionnaries["tabfieldvalue"][41] = "code,label"; //CP - Clave Parte Transporte $this->dictionnaries["tabfieldvalue"][42] = "code,label"; //CP - Clave Figura Transporte $this->dictionnaries["tabfieldvalue"][43] = "code,label"; //CP - Sector COFEPRIS $this->dictionnaries["tabfieldvalue"][44] = "code,label"; //CP - Forma Farmaceutica $this->dictionnaries["tabfieldvalue"][45] = "code,label"; //CP - Condiciones Especiales $this->dictionnaries["tabfieldvalue"][46] = "code,label"; //CFDI, CCE, CP - Moneda $this->dictionnaries["tabfieldvalue"][47] = "code,label"; //CP - Tipo de Materia // tabfieldinsert $this->dictionnaries["tabfieldinsert"][0] = "code,label"; //CFDI - Clave Producto Servicio $this->dictionnaries["tabfieldinsert"][1] = "code,label"; //CFDI - Unidad de Medida $this->dictionnaries["tabfieldinsert"][2] = "code,label"; //CFDI - Uso CFDI $this->dictionnaries["tabfieldinsert"][3] = "code,label"; //CFDI - Tipo Relación $this->dictionnaries["tabfieldinsert"][4] = "code,label"; //CFDI - Regimen Fiscal $this->dictionnaries["tabfieldinsert"][5] = "code,label"; //CFDI - Objeto Impuesto $this->dictionnaries["tabfieldinsert"][6] = "code,label"; //CFDI - Clave Exportación $this->dictionnaries["tabfieldinsert"][7] = "code,label,cod_doli"; //CFDI - Formas de Pago $this->dictionnaries["tabfieldinsert"][8] = "code,label"; //CFDI - Tipos de Facturas $this->dictionnaries["tabfieldinsert"][9] = "code,label"; //CFDI Global - Meses $this->dictionnaries["tabfieldinsert"][10] = "code,label"; //CFDI Global - Periodicidad $this->dictionnaries["tabfieldinsert"][11] = "code,label"; //CCE - Claves Incoterm $this->dictionnaries["tabfieldinsert"][12] = "code,label"; //CCE - Clave Unidad Aduana $this->dictionnaries["tabfieldinsert"][13] = "code,label"; //CCE - Clave Fracción Arancelaria $this->dictionnaries["tabfieldinsert"][14] = "code,label"; //CCE - Motivo Traslado $this->dictionnaries["tabfieldinsert"][15] = "code,label"; //CCE - Clave Pedimento $this->dictionnaries["tabfieldinsert"][16] = "code,label"; //CCE - Tipo Operacion $this->dictionnaries["tabfieldinsert"][17] = "code,label,impoexpo"; //CP - Registo Aduanero $this->dictionnaries["tabfieldinsert"][18] = "code,label"; //CP - Regimen ISTMO $this->dictionnaries["tabfieldinsert"][19] = "code,label"; //CP - Clave Transporte $this->dictionnaries["tabfieldinsert"][20] = "code,label"; //CP - Clave Pais $this->dictionnaries["tabfieldinsert"][21] = "code,label"; //CP - Clave Tipo Estación $this->dictionnaries["tabfieldinsert"][22] = "code,label,clave_transporte"; //CP - Estaciones $this->dictionnaries["tabfieldinsert"][23] = "code,label,descripcion"; //CP - Clave Unidad Peso $this->dictionnaries["tabfieldinsert"][24] = "code,label,materialpeligroso"; //CP - Clave Producto Servicio CP $this->dictionnaries["tabfieldinsert"][25] = "code,label"; //CP - Clave Producto STCC $this->dictionnaries["tabfieldinsert"][26] = "code,label,clasedivision"; //CP - Material Peligroso $this->dictionnaries["tabfieldinsert"][27] = "code,label"; //CP - Tipo de Embalaje $this->dictionnaries["tabfieldinsert"][28] = "code,label,clave_transporte"; //CP - Tipo de Permiso $this->dictionnaries["tabfieldinsert"][29] = "code,label,numeroejes,numerollantas,remolque"; //CP - Configuración AutoTransporte $this->dictionnaries["tabfieldinsert"][30] = "code,label"; //CP - Subtipo Remolque $this->dictionnaries["tabfieldinsert"][31] = "code,label"; //CP - Configuración Maritima $this->dictionnaries["tabfieldinsert"][32] = "code,label"; //CP - Clave Tipo de Carga $this->dictionnaries["tabfieldinsert"][33] = "code,label"; //CP - Número de Autorización Naviero $this->dictionnaries["tabfieldinsert"][34] = "code,label"; //CP - Clave Contenedor Maritimo $this->dictionnaries["tabfieldinsert"][35] = "code,label"; //CP - Código Transporte Aereo $this->dictionnaries["tabfieldinsert"][36] = "code,label"; //CP - Clave Tipo de Servicio $this->dictionnaries["tabfieldinsert"][37] = "code,label"; //CP - Clave Tipo Tráfico $this->dictionnaries["tabfieldinsert"][38] = "code,label"; //CP - Clave Derechos de Paso $this->dictionnaries["tabfieldinsert"][39] = "code,label"; //CP - Clave Tipo Carro $this->dictionnaries["tabfieldinsert"][40] = "code,label"; //CP - Clave Contenedor Ferroviario $this->dictionnaries["tabfieldinsert"][41] = "code,label"; //CP - Clave Parte Transporte $this->dictionnaries["tabfieldinsert"][42] = "code,label"; //CP - Clave Figura Transporte $this->dictionnaries["tabfieldinsert"][43] = "code,label"; //CP - Sector COFEPRIS $this->dictionnaries["tabfieldinsert"][44] = "code,label"; //CP - Forma Farmaceutica $this->dictionnaries["tabfieldinsert"][45] = "code,label"; //CP - Condiciones Especiales $this->dictionnaries["tabfieldinsert"][46] = "code,label"; //CFDI, CCE, CP - Moneda $this->dictionnaries["tabfieldinsert"][47] = "code,label"; //CP - Tipo de Materia // tabrowid $this->dictionnaries["tabrowid"][0] = "rowid"; //CFDI - Clave Producto Servicio $this->dictionnaries["tabrowid"][1] = "rowid"; //CFDI - Unidad de Medida $this->dictionnaries["tabrowid"][2] = "rowid"; //CFDI - Uso CFDI $this->dictionnaries["tabrowid"][3] = "rowid"; //CFDI - Tipo Relación $this->dictionnaries["tabrowid"][4] = "rowid"; //CFDI - Regimen Fiscal $this->dictionnaries["tabrowid"][5] = "rowid"; //CFDI - Objeto Impuesto $this->dictionnaries["tabrowid"][6] = "rowid"; //CFDI - Clave Exportación $this->dictionnaries["tabrowid"][7] = "rowid"; //CFDI - Formas de Pago $this->dictionnaries["tabrowid"][8] = "rowid"; //CFDI - Tipos de Facturas $this->dictionnaries["tabrowid"][9] = "rowid"; //CFDI Global - Meses $this->dictionnaries["tabrowid"][10] = "rowid"; //CFDI Global - Periodicidad $this->dictionnaries["tabrowid"][11] = "rowid"; //CCE - Claves Incoterm $this->dictionnaries["tabrowid"][12] = "rowid"; //CCE - Clave Unidad Aduana $this->dictionnaries["tabrowid"][13] = "rowid"; //CCE - Clave Fracción Arancelaria $this->dictionnaries["tabrowid"][14] = "rowid"; //CCE - Motivo Traslado $this->dictionnaries["tabrowid"][15] = "rowid"; //CCE - Clave Pedimento $this->dictionnaries["tabrowid"][16] = "rowid"; //CCE - Tipo Operacion $this->dictionnaries["tabrowid"][17] = "rowid"; //CP - Regimen Aduanero $this->dictionnaries["tabrowid"][18] = "rowid"; //CP - Registro ISTMO $this->dictionnaries["tabrowid"][19] = "rowid"; //CP - Clave Transporte $this->dictionnaries["tabrowid"][20] = "rowid"; //CP - Clave Pais $this->dictionnaries["tabrowid"][21] = "rowid"; //CP - Clave Tipo Estación $this->dictionnaries["tabrowid"][22] = "rowid"; //CP - Estaciones $this->dictionnaries["tabrowid"][23] = "rowid"; //CP - Clave Unidad Peso $this->dictionnaries["tabrowid"][24] = "rowid"; //CP - Clave Producto Servicio CP $this->dictionnaries["tabrowid"][25] = "rowid"; //CP - Clave Producto STCC $this->dictionnaries["tabrowid"][26] = "rowid"; //CP - Material Peligroso $this->dictionnaries["tabrowid"][27] = "rowid"; //CP - Tipo de Embalaje $this->dictionnaries["tabrowid"][28] = "rowid"; //CP - Tipo de Permiso $this->dictionnaries["tabrowid"][29] = "rowid"; //CP - Configuración AutoTransporte $this->dictionnaries["tabrowid"][30] = "rowid"; //CP - Subtipo Remolque $this->dictionnaries["tabrowid"][31] = "rowid"; //CP - Configuración Maritima $this->dictionnaries["tabrowid"][32] = "rowid"; //CP - Clave Tipo de Carga $this->dictionnaries["tabrowid"][33] = "rowid"; //CP - Número de Autorización Naviero $this->dictionnaries["tabrowid"][34] = "rowid"; //CP - Clave Contenedor Maritimo $this->dictionnaries["tabrowid"][35] = "rowid"; //CP - Código Transporte Aereo $this->dictionnaries["tabrowid"][36] = "rowid"; //CP - Clave Tipo de Servicio $this->dictionnaries["tabrowid"][37] = "rowid"; //CP - Clave Tipo Tráfico $this->dictionnaries["tabrowid"][38] = "rowid"; //CP - Clave Derechos de Paso $this->dictionnaries["tabrowid"][39] = "rowid"; //CP - Clave Tipo Carro $this->dictionnaries["tabrowid"][40] = "rowid"; //CP - Clave Contenedor Ferroviario $this->dictionnaries["tabrowid"][41] = "rowid"; //CP - Clave Parte Transporte $this->dictionnaries["tabrowid"][42] = "rowid"; //CP - Clave Figura Transporte $this->dictionnaries["tabrowid"][43] = "rowid"; //CP - Sector COFEPRIS $this->dictionnaries["tabrowid"][44] = "rowid"; //CP - Forma Farmaceutica $this->dictionnaries["tabrowid"][45] = "rowid"; //CP - Condiciones Especiales $this->dictionnaries["tabrowid"][46] = "rowid"; //CFDI, CCE, CP - Moneda $this->dictionnaries["tabrowid"][47] = "rowid"; //CP - Tipo de Materia // tabcond $this->dictionnaries["tabcond"][0] = $conf->cfdimx->enabled; //CFDI - Clave Producto Servicio $this->dictionnaries["tabcond"][1] = $conf->cfdimx->enabled; //CFDI - Unidad de Medida $this->dictionnaries["tabcond"][2] = $conf->cfdimx->enabled; //CFDI - Uso CFDI $this->dictionnaries["tabcond"][3] = $conf->cfdimx->enabled; //CFDI - Tipo Relación $this->dictionnaries["tabcond"][4] = $conf->cfdimx->enabled; //CFDI - Regimen Fiscal $this->dictionnaries["tabcond"][5] = $conf->cfdimx->enabled; //CFDI - Objeto Impuesto $this->dictionnaries["tabcond"][6] = $conf->cfdimx->enabled; //CFDI - Clave Exportación $this->dictionnaries["tabcond"][7] = $conf->cfdimx->enabled; //CFDI - Formas de Pago $this->dictionnaries["tabcond"][8] = $conf->cfdimx->enabled; //CFDI - Tipos de Facturas $this->dictionnaries["tabcond"][9] = $conf->cfdimx->enabled; //CFDI Global - Meses $this->dictionnaries["tabcond"][10] = $conf->cfdimx->enabled; //CFDI Global - Periodicidad $this->dictionnaries["tabcond"][11] = $conf->cfdimx->enabled; //CCE - Claves Incoterm $this->dictionnaries["tabcond"][12] = $conf->cfdimx->enabled; //CCE - Clave Unidad Aduana $this->dictionnaries["tabcond"][13] = $conf->cfdimx->enabled; //CCE - Clave Fracción Arancelaria $this->dictionnaries["tabcond"][14] = $conf->cfdimx->enabled; //CCE - Motivo Traslado $this->dictionnaries["tabcond"][15] = $conf->cfdimx->enabled; //CCE - Clave Pedimento $this->dictionnaries["tabcond"][16] = $conf->cfdimx->enabled; //CCE - Tipo Operacion $this->dictionnaries["tabcond"][17] = $conf->cfdimx->enabled; //CP - Regimen Aduanero $this->dictionnaries["tabcond"][18] = $conf->cfdimx->enabled; //CP - Registro ISTMO $this->dictionnaries["tabcond"][19] = $conf->cfdimx->enabled; //CP - Clave Transporte $this->dictionnaries["tabcond"][20] = $conf->cfdimx->enabled; //CP - Clave Pais $this->dictionnaries["tabcond"][21] = $conf->cfdimx->enabled; //CP - Clave Tipo Estación $this->dictionnaries["tabcond"][22] = $conf->cfdimx->enabled; //CP - Estaciones $this->dictionnaries["tabcond"][23] = $conf->cfdimx->enabled; //CP - Clave Unidad Peso $this->dictionnaries["tabcond"][24] = $conf->cfdimx->enabled; //CP - Clave Producto Servicio CP $this->dictionnaries["tabcond"][25] = $conf->cfdimx->enabled; //CP - Clave Producto STCC $this->dictionnaries["tabcond"][26] = $conf->cfdimx->enabled; //CP - Material Peligroso $this->dictionnaries["tabcond"][27] = $conf->cfdimx->enabled; //CP - Tipo de Embalaje $this->dictionnaries["tabcond"][28] = $conf->cfdimx->enabled; //CP - Tipo de Permiso $this->dictionnaries["tabcond"][29] = $conf->cfdimx->enabled; //CP - Configuración AutoTransporte $this->dictionnaries["tabcond"][30] = $conf->cfdimx->enabled; //CP - Subtipo Remolque $this->dictionnaries["tabcond"][31] = $conf->cfdimx->enabled; //CP - Configuración Maritima $this->dictionnaries["tabcond"][32] = $conf->cfdimx->enabled; //CP - Clave Tipo de Carga $this->dictionnaries["tabcond"][33] = $conf->cfdimx->enabled; //CP - Número de Autorización Naviero $this->dictionnaries["tabcond"][34] = $conf->cfdimx->enabled; //CP - Clave Contenedor Maritimo $this->dictionnaries["tabcond"][35] = $conf->cfdimx->enabled; //CP - Código Transporte Aereo $this->dictionnaries["tabcond"][36] = $conf->cfdimx->enabled; //CP - Clave Tipo de Servicio $this->dictionnaries["tabcond"][37] = $conf->cfdimx->enabled; //CP - Clave Tipo Tráfico $this->dictionnaries["tabcond"][38] = $conf->cfdimx->enabled; //CP - Clave Derechos de Paso $this->dictionnaries["tabcond"][39] = $conf->cfdimx->enabled; //CP - Clave Tipo Carro $this->dictionnaries["tabcond"][40] = $conf->cfdimx->enabled; //CP - Clave Contenedor Ferroviario $this->dictionnaries["tabcond"][41] = $conf->cfdimx->enabled; //CP - Clave Parte Transporte $this->dictionnaries["tabcond"][42] = $conf->cfdimx->enabled; //CP - Clave Figura Transporte $this->dictionnaries["tabcond"][43] = $conf->cfdimx->enabled; //CP - Sector COFEPRIS $this->dictionnaries["tabcond"][44] = $conf->cfdimx->enabled; //CP - Forma Farmaceutica $this->dictionnaries["tabcond"][45] = $conf->cfdimx->enabled; //CP - Condiciones Especiales $this->dictionnaries["tabcond"][46] = $conf->cfdimx->enabled; //CFDI, CCE, CP - Moneda $this->dictionnaries["tabcond"][47] = $conf->cfdimx->enabled; //CP - Tipo de Materia // tabcomplete // $this->dictionnaries["tabcomplete"][0] = array(MAIN_DB_PREFIX."c_cfdimx_clave_prodserv" => array('picto'=>'company', 'help'=>array('label'=>"ABX Pruebas"))); /* Example: $this->dictionaries=array( 'langs'=>'cfdimx@cfdimx', // List of tables we want to see into dictonnary editor 'tabname'=>array("table1", "table2", "table3"), // Label of tables 'tablib'=>array("Table1", "Table2", "Table3"), // Request to select fields 'tabsql'=>array('SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table1 as f', 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table2 as f', 'SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table3 as f'), // Sort order 'tabsqlsort'=>array("label ASC", "label ASC", "label ASC"), // List of fields (result of select to show dictionary) 'tabfield'=>array("code,label", "code,label", "code,label"), // List of fields (list of fields to edit a record) 'tabfieldvalue'=>array("code,label", "code,label", "code,label"), // List of fields (list of fields for insert) 'tabfieldinsert'=>array("code,label", "code,label", "code,label"), // Name of columns with primary key (try to always name it 'rowid') 'tabrowid'=>array("rowid", "rowid", "rowid"), // Condition to show each dictionary 'tabcond'=>array(isModEnabled('cfdimx'), isModEnabled('cfdimx'), isModEnabled('cfdimx')), // Tooltip for every fields of dictionaries: DO NOT PUT AN EMPTY ARRAY 'tabhelp'=>array(array('code'=>$langs->trans('CodeTooltipHelp'), 'field2' => 'field2tooltip'), array('code'=>$langs->trans('CodeTooltipHelp'), 'field2' => 'field2tooltip'), ...), ); */ // Boxes/Widgets // Add here list of php file(s) stored in cfdimx/core/boxes that contains a class to show a widget. $this->boxes = array( // 0 => array( // 'file' => 'cfdimxwidget1.php@cfdimx', // 'note' => 'Widget provided by CFDIMX', // 'enabledbydefaulton' => 'Home', // ), // ... ); // Cronjobs (List of cron jobs entries to add when module is enabled) // unit_frequency must be 60 for minute, 3600 for hour, 86400 for day, 604800 for week $this->cronjobs = array( // 0 => array( // 'label' => 'MyJob label', // 'jobtype' => 'method', // 'class' => '/cfdimx/class/myobject.class.php', // 'objectname' => 'MyObject', // 'method' => 'doScheduledJob', // 'parameters' => '', // 'comment' => 'Comment', // 'frequency' => 2, // 'unitfrequency' => 3600, // 'status' => 0, // 'test' => 'isModEnabled("cfdimx")', // 'priority' => 50, // ), ); // Example: $this->cronjobs=array( // 0=>array('label'=>'My label', 'jobtype'=>'method', 'class'=>'/dir/class/file.class.php', 'objectname'=>'MyClass', 'method'=>'myMethod', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>'isModEnabled("cfdimx")', 'priority'=>50), // 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24, 'status'=>0, 'test'=>'isModEnabled("cfdimx")', 'priority'=>50) // ); // Permissions provided by this module $this->rights = array(); $r = 0; $num_permiso = 100001; $this->rights[$r][0] = $num_permiso; // Permission id (must not be already used) $this->rights[$r][1] = 'Generar CFDI'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'create'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2) $r++; $num_permiso++; $this->rights[$r][0] = $num_permiso; // Permission id (must not be already used) $this->rights[$r][1] = 'Cancelar y eliminar CFDI'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'delete'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2) $r++; $num_permiso++; $this->rights[$r][0] = $num_permiso; // Permission id (must not be already used) $this->rights[$r][1] = 'Consulta de datos de CFDIMX'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'select'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2) $r++; $num_permiso++; $this->rights[$r][0] = $num_permiso; // Permission id (must not be already used) $this->rights[$r][1] = 'Acceso a la Configuración de CFDIMX'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'config'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2) $this->rights[$r][5] = 'access'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2) $r++; $num_permiso++; $this->rights[$r][0] = $num_permiso; // Permission id (must not be already used) $this->rights[$r][1] = 'Generar Complementos Pagos'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'create_comp_pagos'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2) $r++; $num_permiso++; $this->rights[$r][0] = $num_permiso; // Permission id (must not be already used) $this->rights[$r][1] = 'Cancelar Complementos Pagos'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'cancelar_comp_pagos'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2) $r++; $num_permiso++; $this->rights[$r][0] = $num_permiso; // Permission id (must not be already used) $this->rights[$r][1] = 'Eliminar Registro Complementos Pagos'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'delete_reg_comp_pagos'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2) $r++; $num_permiso++; $this->rights[$r][0] = $num_permiso; // Permission id (must not be already used) $this->rights[$r][1] = 'Enviar Correo CFDIMX'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'send_mailsend'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2) $r++; $num_permiso++; $this->rights[$r][0] = $num_permiso; // Permission id (must not be already used) $this->rights[$r][1] = 'Agregar CFDI Relacionados'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'add_comp_cfdi_rel'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2) $r++; $num_permiso++; $this->rights[$r][0] = $num_permiso; // Permission id (must not be already used) $this->rights[$r][1] = 'Agregar Factura Global'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'add_factura_globlal'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2) $r++; $num_permiso++; $this->rights[$r][0] = $num_permiso; // Permission id (must not be already used) $this->rights[$r][1] = 'Agrupar Facturas'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'agrupar_fac'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2) $r++; $num_permiso++; $this->rights[$r][0] = $num_permiso; // Permission id (must not be already used) $this->rights[$r][1] = 'Agregar Comercio Exterior 2.0 (CCE)'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'add_comp_cce'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2) $r++; $num_permiso++; $this->rights[$r][0] = $num_permiso; // Permission id (must not be already used) $this->rights[$r][1] = 'Agregar Carta Porte 3.1 (CP)'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'add_comp_carta_porte'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2) $r++; $num_permiso++; // $this->rights[$r][0] = $num_permiso; // Permission id (must not be already used) // $this->rights[$r][1] = 'RRHH'; // Permission label // $this->rights[$r][3] = 0; // Permission by default for new user (0/1) // $this->rights[$r][4] = 'add_empleado'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2) // $r++; // $num_permiso++; // Add here entries to declare new permissions /* BEGIN MODULEBUILDER PERMISSIONS */ /*$this->rights[$r][0] = $this->numero . sprintf("%02d", $r + 1); // Permission id (must not be already used) $this->rights[$r][1] = 'Read objects of CFDIMX'; // Permission label $this->rights[$r][4] = 'myobject'; $this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->hasRight('cfdimx', 'myobject', 'read')) $r++; $this->rights[$r][0] = $this->numero . sprintf("%02d", $r + 1); // Permission id (must not be already used) $this->rights[$r][1] = 'Create/Update objects of CFDIMX'; // Permission label $this->rights[$r][4] = 'myobject'; $this->rights[$r][5] = 'write'; // In php code, permission will be checked by test if ($user->hasRight('cfdimx', 'myobject', 'write')) $r++; $this->rights[$r][0] = $this->numero . sprintf("%02d", $r + 1); // Permission id (must not be already used) $this->rights[$r][1] = 'Delete objects of CFDIMX'; // Permission label $this->rights[$r][4] = 'myobject'; $this->rights[$r][5] = 'delete'; // In php code, permission will be checked by test if ($user->rights->cfdimx->myobject->delete) $r++;*/ /* END MODULEBUILDER PERMISSIONS */ // Main menu entries to add $this->menu = array(); $r = 0; // Add here entries to declare new menus /* BEGIN MODULEBUILDER TOPMENU */ $this->menu[$r]=array( 'fk_menu'=>'', // Put 0 if this is a top menu 'type'=>'top', // This is a Top menu entry 'titre'=>'CFDI', 'prefix' => img_picto('', $this->picto, 'class="paddingright pictofixedwidth valignmiddle"'), 'mainmenu'=>'cfdimx', 'leftmenu'=>'', 'url'=>'/cfdimx/index.php', 'langs'=>'cfdimx@cfdimx', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000+$r, 'enabled'=>'isModEnabled("cfdimx")', // Define condition to show or hide menu entry. Use 'isModEnabled("cfdimx")' if entry must be visible if module is enabled. 'perms'=>'1', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules 'target'=>'', 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both $r++; /* END MODULEBUILDER TOPMENU */ /* BEGIN MODULEBUILDER LEFTMENU MYOBJECT */ $this->menu[$r++]=array( 'fk_menu'=>'fk_mainmenu=cfdimx', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode 'type'=>'left', // This is a Left menu entry 'titre'=>'Facturas', 'prefix' => img_picto('', 'bill', 'class="paddingright pictofixedwidth valignmiddle"'), 'mainmenu'=>'cfdimx', 'leftmenu'=>'facturas', // 'url'=>'/cfdimx/cfdimxindex.php', 'url'=>'/cfdimx/consultas/facturas.php', 'langs'=>'cfdimx@cfdimx', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000+$r, 'enabled'=>'isModEnabled("cfdimx")', // Define condition to show or hide menu entry. Use 'isModEnabled("cfdimx")' if entry must be visible if module is enabled. // 'perms'=>'$user->hasRight("cfdimx", "myobject", "read")', 'perms' => 1, 'target'=>'', 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); $this->menu[$r++]=array( 'fk_menu'=>'fk_mainmenu=cfdimx,fk_leftmenu=facturas', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode 'type'=>'left', // This is a Left menu entry 'titre'=>'Sin Timbrar', 'mainmenu'=>'', 'leftmenu'=>'', 'url'=>'/cfdimx/consultas/facturas.php?search_cancelado=2', 'langs'=>'cfdimx@cfdimx', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000+$r, 'enabled'=>'1', // Define condition to show or hide menu entry. Use 'isModEnabled("cfdimx")' if entry must be visible if module is enabled. // 'perms'=>'$user->hasRight("cfdimx", "myobject", "read")' 'perms' => 1, 'target'=>'', 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); $this->menu[$r++]=array( 'fk_menu'=>'fk_mainmenu=cfdimx,fk_leftmenu=facturas', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode 'type'=>'left', // This is a Left menu entry 'titre'=>'Timbradas', 'mainmenu'=>'', 'leftmenu'=>'', 'url'=>'/cfdimx/consultas/facturas.php?search_cancelado=0', 'langs'=>'cfdimx@cfdimx', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000+$r, 'enabled'=>'1', // Define condition to show or hide menu entry. Use 'isModEnabled("cfdimx")' if entry must be visible if module is enabled. // 'perms'=>'$user->hasRight("cfdimx", "myobject", "read")' 'perms' => 1, 'target'=>'', 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); $this->menu[$r++]=array( 'fk_menu'=>'fk_mainmenu=cfdimx,fk_leftmenu=facturas', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode 'type'=>'left', // This is a Left menu entry 'titre'=>'Canceladas', 'mainmenu'=>'', 'leftmenu'=>'', 'url'=>'/cfdimx/consultas/facturas.php?search_cancelado=1', 'langs'=>'cfdimx@cfdimx', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000+$r, 'enabled'=>'1', // Define condition to show or hide menu entry. Use 'isModEnabled("cfdimx")' if entry must be visible if module is enabled. // 'perms'=>'$user->hasRight("cfdimx", "myobject", "read")' 'perms' => 1, 'target'=>'', 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); $this->menu[$r++]=array( 'fk_menu'=>'fk_mainmenu=cfdimx', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode 'type'=>'left', // This is a Left menu entry 'titre'=>'Pagos', 'prefix' => img_picto('', 'fa-university', 'class="paddingright pictofixedwidth valignmiddle green"'), 'mainmenu'=>'cfdimx', 'leftmenu'=>'pagos', // 'url'=>'/cfdimx/cfdimxindex.php', 'url'=>'/cfdimx/consultas/pagos.php', 'langs'=>'cfdimx@cfdimx', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000+$r, 'enabled'=>'isModEnabled("cfdimx")', // Define condition to show or hide menu entry. Use 'isModEnabled("cfdimx")' if entry must be visible if module is enabled. // 'perms'=>'$user->hasRight("cfdimx", "myobject", "read")', 'perms' => 1, 'target'=>'', 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); $this->menu[$r++]=array( 'fk_menu'=>'fk_mainmenu=cfdimx,fk_leftmenu=pagos', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode 'type'=>'left', // This is a Left menu entry 'titre'=>'SinTimbrar', 'mainmenu'=>'', 'leftmenu'=>'pagos', 'url'=>'/cfdimx/consultas/pagos.php?search_cancelado=2', 'langs'=>'cfdimx@cfdimx', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000+$r, 'enabled'=>'1', // Define condition to show or hide menu entry. Use 'isModEnabled("cfdimx")' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. // 'perms'=>'$user->hasRight("cfdimx", "myobject", "write")' 'perms' => 1, 'target'=>'', 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); $this->menu[$r++]=array( 'fk_menu'=>'fk_mainmenu=cfdimx,fk_leftmenu=pagos', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode 'type'=>'left', // This is a Left menu entry 'titre'=>'Timbrados', 'mainmenu'=>'', 'leftmenu'=>'pagos', 'url'=>'/cfdimx/consultas/pagos.php?search_cancelado=0', 'langs'=>'cfdimx@cfdimx', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000+$r, 'enabled'=>'1', // Define condition to show or hide menu entry. Use 'isModEnabled("cfdimx")' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. // 'perms'=>'$user->hasRight("cfdimx", "myobject", "write")' 'perms' => 1, 'target'=>'', 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); $this->menu[$r++]=array( 'fk_menu'=>'fk_mainmenu=cfdimx,fk_leftmenu=pagos', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode 'type'=>'left', // This is a Left menu entry 'titre'=>'Cancelados', 'mainmenu'=>'', 'leftmenu'=>'pagos', 'url'=>'/cfdimx/consultas/pagos.php?search_cancelado=1', 'langs'=>'cfdimx@cfdimx', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000+$r, 'enabled'=>'1', // Define condition to show or hide menu entry. Use 'isModEnabled("cfdimx")' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. // 'perms'=>'$user->hasRight("cfdimx", "myobject", "write")' 'perms' => 1, 'target'=>'', 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); $archivo_especial = dol_buildpath('/cfdimx/funcion_especial.php'); if(file_exists($archivo_especial)){ $this->menu[$r++]=array( 'fk_menu'=>'fk_mainmenu=cfdimx', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode 'type'=>'left', // This is a Left menu entry 'titre'=>'Sellos (CSD)', 'prefix' => img_picto('', 'fa-file-code ', 'class=" paddingright pictofixedwidth valignmiddle green"'), 'mainmenu'=>'cfdimx', 'leftmenu'=>'sellos', // 'url'=>'/cfdimx/cfdimxindex.php', 'url'=>'', 'langs'=>'cfdimx@cfdimx', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000+$r, 'enabled'=>'isModEnabled("cfdimx")', // Define condition to show or hide menu entry. Use 'isModEnabled("cfdimx")' if entry must be visible if module is enabled. // 'perms'=>'$user->hasRight("cfdimx", "myobject", "read")', 'perms' => 1, 'target'=>'', 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); $this->menu[$r++]=array( 'fk_menu'=>'fk_mainmenu=cfdimx,fk_leftmenu=sellos', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode 'type'=>'left', // This is a Left menu entry 'titre'=>'Datos Fiscales', 'mainmenu'=>'', 'leftmenu'=>'sellos', 'url'=>'/cfdimx/datos/datos_fiscales.php', 'langs'=>'cfdimx@cfdimx', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000+$r, 'enabled'=>'1', // Define condition to show or hide menu entry. Use 'isModEnabled("cfdimx")' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. // 'perms'=>'$user->hasRight("cfdimx", "myobject", "write")' 'perms' => 1, 'target'=>'', 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); $this->menu[$r++]=array( 'fk_menu'=>'fk_mainmenu=cfdimx,fk_leftmenu=sellos', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode 'type'=>'left', // This is a Left menu entry 'titre'=>'Cargar Sellos', 'mainmenu'=>'', 'leftmenu'=>'sellos', 'url'=>'/cfdimx/datos/sellos.php', 'langs'=>'cfdimx@cfdimx', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000+$r, 'enabled'=>'1', // Define condition to show or hide menu entry. Use 'isModEnabled("cfdimx")' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. // 'perms'=>'$user->hasRight("cfdimx", "myobject", "write")' 'perms' => 1, 'target'=>'', 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); } // Borrar add_empleado $user->rights->permkey->level1->level2 // $this->menu[$r++]=array( // 'fk_menu'=>'fk_mainmenu=hrm,fk_leftmenu=hrm', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode // 'type'=>'left', // This is a Left menu entry // 'titre'=>'TMP', // 'mainmenu'=>'', // 'leftmenu'=>'pagos', // 'url'=>'/cfdimx/card.php?action=create&employee=1', // 'langs'=>'cfdimx@cfdimx', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. // 'position'=>1000+$r, // 'enabled'=>'1', // Define condition to show or hide menu entry. Use 'isModEnabled("cfdimx")' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. // // 'perms'=>'$user->hasRight("cfdimx", "myobject", "write")' // 'perms' => '$user->rights->cfdimx->add_empleado', // 'target'=>'', // 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both // ); /* END MODULEBUILDER LEFTMENU MYOBJECT */ // Exports profiles provided by this module $r = 1; /* BEGIN MODULEBUILDER EXPORT MYOBJECT */ /* $langs->load("cfdimx@cfdimx"); $this->export_code[$r]=$this->rights_class.'_'.$r; $this->export_label[$r]='MyObjectLines'; // Translation key (used only if key ExportDataset_xxx_z not found) $this->export_icon[$r]='myobject@cfdimx'; // Define $this->export_fields_array, $this->export_TypeFields_array and $this->export_entities_array $keyforclass = 'MyObject'; $keyforclassfile='/cfdimx/class/myobject.class.php'; $keyforelement='myobject@cfdimx'; include DOL_DOCUMENT_ROOT.'/core/commonfieldsinexport.inc.php'; //$this->export_fields_array[$r]['t.fieldtoadd']='FieldToAdd'; $this->export_TypeFields_array[$r]['t.fieldtoadd']='Text'; //unset($this->export_fields_array[$r]['t.fieldtoremove']); //$keyforclass = 'MyObjectLine'; $keyforclassfile='/cfdimx/class/myobject.class.php'; $keyforelement='myobjectline@cfdimx'; $keyforalias='tl'; //include DOL_DOCUMENT_ROOT.'/core/commonfieldsinexport.inc.php'; $keyforselect='myobject'; $keyforaliasextra='extra'; $keyforelement='myobject@cfdimx'; include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; //$keyforselect='myobjectline'; $keyforaliasextra='extraline'; $keyforelement='myobjectline@cfdimx'; //include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; //$this->export_dependencies_array[$r] = array('myobjectline'=>array('tl.rowid','tl.ref')); // To force to activate one or several fields if we select some fields that need same (like to select a unique key if we ask a field of a child to avoid the DISTINCT to discard them, or for computed field than need several other fields) //$this->export_special_array[$r] = array('t.field'=>'...'); //$this->export_examplevalues_array[$r] = array('t.field'=>'Example'); //$this->export_help_array[$r] = array('t.field'=>'FieldDescHelp'); $this->export_sql_start[$r]='SELECT DISTINCT '; $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'myobject as t'; //$this->export_sql_end[$r] =' LEFT JOIN '.MAIN_DB_PREFIX.'myobject_line as tl ON tl.fk_myobject = t.rowid'; $this->export_sql_end[$r] .=' WHERE 1 = 1'; $this->export_sql_end[$r] .=' AND t.entity IN ('.getEntity('myobject').')'; $r++; */ /* END MODULEBUILDER EXPORT MYOBJECT */ // Imports profiles provided by this module $r = 1; /* BEGIN MODULEBUILDER IMPORT MYOBJECT */ /* $langs->load("cfdimx@cfdimx"); $this->import_code[$r]=$this->rights_class.'_'.$r; $this->import_label[$r]='MyObjectLines'; // Translation key (used only if key ExportDataset_xxx_z not found) $this->import_icon[$r]='myobject@cfdimx'; $this->import_tables_array[$r] = array('t' => MAIN_DB_PREFIX.'cfdimx_myobject', 'extra' => MAIN_DB_PREFIX.'cfdimx_myobject_extrafields'); $this->import_tables_creator_array[$r] = array('t' => 'fk_user_author'); // Fields to store import user id $import_sample = array(); $keyforclass = 'MyObject'; $keyforclassfile='/cfdimx/class/myobject.class.php'; $keyforelement='myobject@cfdimx'; include DOL_DOCUMENT_ROOT.'/core/commonfieldsinimport.inc.php'; $import_extrafield_sample = array(); $keyforselect='myobject'; $keyforaliasextra='extra'; $keyforelement='myobject@cfdimx'; include DOL_DOCUMENT_ROOT.'/core/extrafieldsinimport.inc.php'; $this->import_fieldshidden_array[$r] = array('extra.fk_object' => 'lastrowid-'.MAIN_DB_PREFIX.'cfdimx_myobject'); $this->import_regex_array[$r] = array(); $this->import_examplevalues_array[$r] = array_merge($import_sample, $import_extrafield_sample); $this->import_updatekeys_array[$r] = array('t.ref' => 'Ref'); $this->import_convertvalue_array[$r] = array( 't.ref' => array( 'rule'=>'getrefifauto', 'class'=>(empty(getDolGlobalString('CFDIMX_MYOBJECT_ADDON')) ? 'mod_myobject_standard' : getDolGlobalString('CFDIMX_MYOBJECT_ADDON')), 'path'=>"/core/modules/commande/".(empty(getDolGlobalString('CFDIMX_MYOBJECT_ADDON')) ? 'mod_myobject_standard' : getDolGlobalString('CFDIMX_MYOBJECT_ADDON')).'.php' 'classobject'=>'MyObject', 'pathobject'=>'/cfdimx/class/myobject.class.php', ), 't.fk_soc' => array('rule' => 'fetchidfromref', 'file' => '/societe/class/societe.class.php', 'class' => 'Societe', 'method' => 'fetch', 'element' => 'ThirdParty'), 't.fk_user_valid' => array('rule' => 'fetchidfromref', 'file' => '/user/class/user.class.php', 'class' => 'User', 'method' => 'fetch', 'element' => 'user'), 't.fk_mode_reglement' => array('rule' => 'fetchidfromcodeorlabel', 'file' => '/compta/paiement/class/cpaiement.class.php', 'class' => 'Cpaiement', 'method' => 'fetch', 'element' => 'cpayment'), ); $this->import_run_sql_after_array[$r] = array(); $r++; */ /* END MODULEBUILDER IMPORT MYOBJECT */ } /** * Function called when module is enabled. * The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database. * It also creates data directories * * @param string $options Options when enabling module ('', 'noboxes') * @return int 1 if OK, 0 if KO */ public function init($options = '') { global $db, $conf; $entidad = $conf->entity; //echo "
    ";
    			//print_r($res);
    		//echo "
    "; $sql=""; #Si no existe la columna rowid un llx_cfdimx_emisor_datacomp se elimina la clave primaria que tiene la tabla y se agrega rowid como campo y llave primaria $sql = 'SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = "rowid" AND TABLE_NAME = "'.MAIN_DB_PREFIX.'cfdimx_emisor_datacomp"'; $r = $db->query($sql); if ($db->num_rows($r) == 0) { $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'cfdimx_emisor_datacomp DROP COLUMN emisor_id'; $db->query($sql); $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'cfdimx_emisor_datacomp ADD COLUMN rowid int(11) NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (rowid)'; $db->query($sql); } unset($sql); #Agregar o editar extrafields mínimos necesarios para funcionamiento del módulo (Inicio) require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; $extrafields = new ExtraFields($this->db); #Inicia Extrafields para la tabla productos #Separador Datos Fiscales - CFDIMX $extrafields->addExtraField('datosfiscalescfdimx', "Datos Fiscales - CFDIMX", 'separate', 1000, 0, 'product', 0, 0, 2, 'a:1:{s:7:"options";a:1:{i:2;N;}}', 0, '', 3); #Clave Producto/Servicio $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "claveprodserv" AND elementtype="product" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); if ($res->type == 'varchar') { $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="sellist", size="", fieldrequired=1, alwayseditable=1, list=1 WHERE name="claveprodserv" AND elementtype="product" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); } }else{ $extrafields->addExtraField('claveprodserv', 'Clave Producto-Servicio', 'sellist', 1001, '', 'product', 0, 1, '', 'a:1:{s:7:"options";a:1:{s:44:"c_cfdimx_clave_prodserv:label:code::active=1";N;}}'); } #Clave Unidad de Medida $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "umed" AND elementtype="product" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); if ($res->type == 'varchar') { $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="sellist", size="", fieldrequired=1, alwayseditable=1, list=1 WHERE name="umed" AND elementtype="product" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); } }else{ $extrafields->addExtraField('umed', 'Unidad de Medida', 'sellist', 1002, '', 'product', 0, 1, '', 'a:1:{s:7:"options";a:1:{s:43:"c_cfdimx_unidad_medida:label:code::active=1";N;}}'); } #Clave No. Identificación $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "noidenticfdi" AND elementtype="product" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="varchar", size="255", alwayseditable=1 WHERE name="noidenticfdi" AND elementtype="product" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); }else{ $extrafields->addExtraField('noidenticfdi', 'No. Identificación', 'varchar', 1003, '255', 'product', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:0:"";N;}}'); } #Clave Cuenta Pedrial $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "cuentapredial" AND elementtype="product" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="varchar", size="255", alwayseditable=1 WHERE name="cuentapredial" AND elementtype="product" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); }else{ $extrafields->addExtraField('cuentapredial', 'Cuenta Predial', 'varchar', 1004, '255', 'product', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:0:"";N;}}'); $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET "; $sql .= " list=0"; $sql .= " WHERE name='cuentapredial' AND elementtype='product' AND entity = ".$entidad; //echo $sql."
    "; $db->query($sql); } #Clave Impuesto ISH $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "prodcfish" AND elementtype="product" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="varchar", size="255", alwayseditable=1 WHERE name="prodcfish" AND elementtype="product" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); }else{ $extrafields->addExtraField('prodcfish', 'Impuesto sobre Hospedaje (ISH)', 'varchar', 1005, '255', 'product', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:0:"";N;}}'); $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET "; $sql .= " list=0"; $sql .= " WHERE name='prodcfish' AND elementtype='product' AND entity = ".$entidad; //echo $sql."
    "; $db->query($sql); } #Etiqueta Impuesto ISH $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "prodcfish_label" AND elementtype="product" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="varchar", size="255", alwayseditable=1 WHERE name="prodcfish_label" AND elementtype="product" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); }else{ $extrafields->addExtraField('prodcfish_label', 'Etiqueta para Impuesto sobre Hospedaje (ISH)', 'varchar', 1006, '255', 'product', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:0:"";N;}}'); $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET "; $sql .= " list=0"; $sql .= " WHERE name='prodcfish_label' AND elementtype='product' AND entity = ".$entidad; //echo $sql."
    "; $db->query($sql); } #Exento I.V.A. $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "exentoiva" AND elementtype="product" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { }else{ $extrafields->addExtraField('exentoiva', 'Exento de I.V.A.', 'boolean', 1007, '', 'product', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:0:"";N;}}',1,'',1); } #Objeto de Impuesto $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "objimp" AND elementtype="product" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { }else{ $extrafields->addExtraField('objimp', 'Objeto de Impuesto', 'select', 1008, '', 'product', 0, 1, '', 'a:1:{s:7:"options";a:5:{s:2:"01";s:26:"01 - No objeto de impuesto";s:2:"02";s:26:"02 - Si objeto de impuesto";s:2:"03";s:53:"03 - Si objeto del impuesto y no obligado al desglose";s:2:"04";s:47:"04 - Si objeto del impuesto y no causa impuesto";s:2:"05";s:27:"05 - Si objeto del impuesto";}}'); } # Datos de Exportación $extrafields->addExtraField('datosexportacioncfdimx', "Datos Exportación - CFDIMX", 'separate', 2000, 0, 'product', 0, 0, 2, 'a:1:{s:7:"options";a:1:{i:2;N;}}', 0, '', 3); #Clave Unidad Aduana $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "uaduana" AND elementtype="product" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); if ($res->type == 'varchar') { $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="sellist", size="", alwayseditable=1, list=1 WHERE name="uaduana" AND elementtype="product" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); } }else{ $extrafields->addExtraField('uaduana', 'Unidad Aduana', 'sellist', 2001, '', 'product', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:43:"c_cfdimx_unidad_aduana:label:code::active=1";N;}}'); $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET "; $sql .= " list=0"; $sql .= " WHERE name='uaduana' AND elementtype='product' AND entity = ".$entidad; //echo $sql."
    "; $db->query($sql); } #Clave Fraccion Arancelaria $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "f_arancelaria" AND elementtype="product" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); if ($res->type == 'varchar') { $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="sellist", size="", alwayseditable=1, list=1 WHERE name="f_arancelaria" AND elementtype="product" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); } }else{ $extrafields->addExtraField('f_arancelaria', 'Fracción Arancelaria', 'sellist', 2002, '', 'product', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:43:"c_cfdimx_f_arancelaria:label:code::active=1";N;}}'); $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET "; $sql .= " list=0"; $sql .= " WHERE name='f_arancelaria' AND elementtype='product'"; //echo $sql."
    "; $db->query($sql); } #Informacion Aduanera - Num Pedimento $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "numpedimento" AND elementtype="product" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { }else{ $extrafields->addExtraField('numpedimento', 'Información Aduanera - Num. Pedimento', 'varchar', 2003, '255', 'product', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:0:"";N;}}'); $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET "; $sql .= " list=0"; $sql .= " WHERE name='numpedimento' AND elementtype='product' AND entity = ".$entidad; //echo $sql."
    "; $db->query($sql); } #Termina Extrafields para la tabla productos #Inicia Extrafields para la tabla Factura Extrafields #Separador Datos Fiscales - CFDIMX $extrafields->addExtraField('datosfiscalescfdimx', "Datos Fiscales - CFDIMX", 'separate', 1000, 0, 'facturedet', 0, 0, 2, 'a:1:{s:7:"options";a:1:{i:2;N;}}', 0, '', 3); #Clave Producto/Servicio $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "claveprodserv" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); if ($res->type == 'varchar') { $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="sellist", size="", fieldrequired=1, alwayseditable=1, list=1 WHERE name="claveprodserv" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); } }else{ $extrafields->addExtraField('claveprodserv', 'Clave Producto - Servicio', 'sellist', 1001, '', 'facturedet', 0, 1, '', 'a:1:{s:7:"options";a:1:{s:44:"c_cfdimx_clave_prodserv:label:code::active=1";N;}}'); } #Clave Unidad de medida $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "umed" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); if ($res->type == 'varchar') { $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="sellist", size="", fieldrequired=1, alwayseditable=1, list=1 WHERE name="umed" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); } }else{ $extrafields->addExtraField('umed', 'Unidad de medida', 'sellist', 1002, '', 'facturedet', 0, 1, '', 'a:1:{s:7:"options";a:1:{s:43:"c_cfdimx_unidad_medida:label:code::active=1";N;}}'); } #Clave No. Identificación $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "noidenticfdi" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="varchar", size="255", alwayseditable=1 WHERE name="noidenticfdi" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); }else{ $extrafields->addExtraField('noidenticfdi', 'No. Identificación', 'varchar', 1003, '255', 'facturedet', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:0:"";N;}}'); } #Clave Cuenta Predial $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "cuentapredial" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="varchar", size="255", alwayseditable=1 WHERE name="cuentapredial" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); }else{ $extrafields->addExtraField('cuentapredial', 'Cuenta Predial', 'varchar', 1004, '255', 'facturedet', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:0:"";N;}}'); $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET "; $sql .= " list=0"; $sql .= " WHERE name='cuentapredial' AND elementtype='facturedet' AND entity = ".$entidad; //echo $sql."
    "; $db->query($sql); } #Clave Impuesto ISH $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "prodcfish" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="varchar", size="255", alwayseditable=1 WHERE name="prodcfish" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); }else{ $extrafields->addExtraField('prodcfish', 'Impuesto sobre Hospedaje (ISH)', 'varchar', 1005, '255', 'facturedet', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:0:"";N;}}'); $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET "; $sql .= " list=0"; $sql .= " WHERE name='prodcfish' AND elementtype='facturedet' AND entity = ".$entidad; //echo $sql."
    "; $db->query($sql); } #Clave Impuesto ISH $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "prodcfish_label" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="varchar", size="255", alwayseditable=1 WHERE name="prodcfish_label" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); }else{ $extrafields->addExtraField('prodcfish_label', 'Etiqueta para Impuesto sobre Hospedaje (ISH)', 'varchar', 1006, '255', 'facturedet', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:0:"";N;}}'); $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET "; $sql .= " list=0"; $sql .= " WHERE name='prodcfish_label' AND elementtype='facturedet' AND entity = ".$entidad; //echo $sql."
    "; $db->query($sql); } #Exento I.V.A. $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "exentoiva" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { }else{ $extrafields->addExtraField('exentoiva', 'Exento de I.V.A.', 'boolean', 1007, '', 'facturedet', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:0:"";N;}}',1,'',1); } #Objeto de Impuesto $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "objimp" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { }else{ $extrafields->addExtraField('objimp', 'Objeto de Impuesto', 'select', 1008, '', 'facturedet', 0, 1, '', 'a:1:{s:7:"options";a:5:{s:2:"01";s:26:"01 - No objeto de impuesto";s:2:"02";s:26:"02 - Si objeto de impuesto";s:2:"03";s:53:"03 - Si objeto del impuesto y no obligado al desglose";s:2:"04";s:47:"04 - Si objeto del impuesto y no causa impuesto";s:2:"05";s:27:"05 - Si objeto del impuesto";}}'); } # Datos de Exportación $extrafields->addExtraField('datosexportacioncfdimx', "Datos Exportación - CFDIMX", 'separate', 2000, 0, 'facturedet', 0, 0, 2, 'a:1:{s:7:"options";a:1:{i:2;N;}}', 0, '', 3); #Clave Unidad Aduana $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "uaduana" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); if ($res->type == 'varchar') { $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="sellist", size="255", alwayseditable=1, list=1 WHERE name="uaduana" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); } }else{ $extrafields->addExtraField('uaduana', 'Unidad Aduana', 'sellist', 2001, '', 'facturedet', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:43:"c_cfdimx_unidad_aduana:label:code::active=1";N;}}'); $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET "; $sql .= " list=0"; $sql .= " WHERE name='uaduana' AND elementtype='facturedet' AND entity = ".$entidad; //echo $sql."
    "; $db->query($sql); } #Clave Fraccion Arancelaria $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "f_arancelaria" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); if ($res->type == 'varchar') { $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="sellist", size="", alwayseditable=1, list=1 WHERE name="f_arancelaria" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); } }else{ $extrafields->addExtraField('f_arancelaria', 'Fracción Arancelaria', 'sellist', 2002, '', 'facturedet', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:43:"c_cfdimx_f_arancelaria:label:code::active=1";N;}}'); $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET "; $sql .= " list=0"; $sql .= " WHERE name='f_arancelaria' AND elementtype='facturedet' AND entity = ".$entidad; //echo $sql."
    "; $db->query($sql); } #Informacion Aduanera - Num Pedimento $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "numpedimento" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { }else{ $extrafields->addExtraField('numpedimento', 'Información Aduanera - Num. Pedimento', 'varchar', 2003, '255', 'facturedet', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:0:"";N;}}'); $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET "; $sql .= " list=0"; $sql .= " WHERE name='numpedimento' AND elementtype='facturedet' AND entity = ".$entidad; //echo $sql."
    "; $db->query($sql); } #Termina Extrafields para la tabla Factura Extrafields #Inicia Extrafields para la tabla Factura #Separador Datos Fiscales - CFDIMX $extrafields->addExtraField('datosfiscalesfacturecfdimx', "Datos Fiscales - CFDIMX", 'separate', 1000, 0, 'facture', 0, 0, 2, 'a:1:{s:7:"options";a:1:{i:2;N;}}', 0, '', 3); #Clave Forma de Pago $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "formpagcfdi" AND elementtype="facture" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); if ($res->type == 'varchar') { $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="select", size="", fieldrequired=1, alwayseditable=1, list=1 WHERE name="formpagcfdi" AND elementtype="facture" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); } }else{ $extrafields->addExtraField('formpagcfdi', 'Método de Pago CFDI', 'select', 1001, '', 'facture', 0, 1, '', 'a:1:{s:7:"options";a:2:{s:3:"PUE";s:34:"PUE - Pago en una sola exhibición";s:3:"PPD";s:28:" PPD - Pago en parcialidades";}}'); } #Clave Uso CFDI $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "usocfdi" AND elementtype="facture" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); if ($res->type == 'varchar') { $sql = 'UPDATE '.MAIN_DB_PREFIX.'extrafields SET type="sellist", size="", fieldrequired=1, alwayseditable=1, list=1 WHERE name="usocfdi" AND elementtype="facture" AND entity = '.$entidad; //echo $sql."
    "; $db->query($sql); } }else { $extrafields->addExtraField('usocfdi', 'Uso CFDI', 'sellist', 1002, '', 'facture', 0, 1, '', 'a:1:{s:7:"options";a:1:{s:38:"c_cfdimx_uso_cfdi:label:code::active=1";N;}}'); } #Clave Tipo Relación $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "cfdidoctiporelacion" AND elementtype="facture" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); // if ($res->type == 'varchar') { $param = 'a:1:{s:7:"options";a:1:{s:38:"c_cfdimx_tipo_rel:label:code::active=1";N;}}'; $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET type='sellist', size='', alwayseditable=1, list=1,"; $sql .= " param='".$param."'"; $sql .= " WHERE name='cfdidoctiporelacion' AND elementtype='facture' AND entity = ".$entidad; //echo $sql."
    "; $db->query($sql); // } }else { $extrafields->addExtraField('cfdidoctiporelacion', 'CFDI Rel. Tipo Relación', 'sellist', 1003, '', 'facture', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:38:"c_cfdimx_tipo_rel:label:code::active=1";N;}}'); $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET "; $sql .= " list=0"; $sql .= " WHERE name='cfdidoctiporelacion' AND elementtype='facture' AND entity = ".$entidad; //echo $sql."
    "; $db->query($sql); } #Tipo de Cambio CFDI $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "tipodecambiocfdi" AND elementtype="facture" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { }else{ $extrafields->addExtraField('tipodecambiocfdi', 'Tipo de Cambio', 'varchar', 1004, '255', 'facture', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:0:"";N;}}'); } #Clave Exportación $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "clave_expor" AND elementtype="facture" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { }else{ $extrafields->addExtraField('clave_expor', 'Clave Exportación', 'sellist', 1005, '', 'facture', 0, 1, '', 'a:1:{s:7:"options";a:1:{s:41:"c_cfdimx_exportacion:label:code::active=1";N;}}'); } #Es Factura Global $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "facglobal" AND elementtype="facture" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { }else{ $extrafields->addExtraField('facglobal', 'Agrupada en Factura Global', 'boolean', 1006, '', 'facture', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:0:"";N;}}', 0, '', 0); } #Termina Extrafields para la tabla Factura #Inicia Ajuste para agregar nuevas claves de Uso CFDI $lista_usocfdi = array( 'S01' => "('S01', 'Sin efectos fiscales', 1)", 'CP01' => "('CP01', 'Pagos', 1)", 'CN01' => "('CN01', 'Nómina', 1)" ); $sql_usocfdi = 'SELECT * FROM '.MAIN_DB_PREFIX.'c_cfdimx_uso_cfdi'; $res_sql_usocfdi = $db->query($sql_usocfdi); if($db->num_rows($res_sql_usocfdi) > 0) { while($res = $db->fetch_object($res_sql_usocfdi)){ if (isset($lista_usocfdi[$res->code])) unset($lista_usocfdi[$res->code]); } if (count($lista_usocfdi) > 0){ $sql = "INSERT IGNORE INTO ".MAIN_DB_PREFIX."c_cfdimx_uso_cfdi (code, label, active) VALUES ".implode(', ',$lista_usocfdi); $db->query($sql); } } #Termina Ajuste para agregar nuevas claves de Uso CFDI ##Inicia verificar si existen las Claves de Objeto de Impuesto 04, 05 $lista_objetoimpuesto = array( '04' => "('04', '04 - Si Objeto del impuesto y no causa impuesto', 1)", '05' => "('05', '05 - Si objeto del impuesto, IVA crédito PODEBI', 1)" ); $sql_objimp = 'SELECT * FROM '.MAIN_DB_PREFIX.'c_cfdimx_objimpuesto'; print $sql_objimp; $res_sql_objimp = $db->query($sql_objimp); if($db->num_rows($res_sql_objimp) > 0) { while($res = $db->fetch_object($res_sql_objimp)){ if (isset($lista_objetoimpuesto[$res->code])) unset($lista_objetoimpuesto[$res->code]); } if (count($lista_objetoimpuesto) > 0){ $sql = "INSERT IGNORE INTO ".MAIN_DB_PREFIX."c_cfdimx_objimpuesto (code, label, active) VALUES ".implode(', ',$lista_objetoimpuesto); $db->query($sql); } } ##Termina verificar si existen las Claves de Objeto de Impuesto 04, 05 #Inicia Actualizacion del Catalogo de Formas de Pago con código Dolibar $sql_list_formpago = "SELECT * FROM ".MAIN_DB_PREFIX."c_cfdimx_formapago"; $sql_list_formpago .= " WHERE cod_doli IS NOT NULL"; $res_list_formpago = $db->query($sql_list_formpago); $num_list_formpago = $db->num_rows($res_list_formpago); dol_syslog('sql_list_formpago : ' . $sql_list_formpago); if($num_list_formpago > 0){ while ($obj_formpago = $db->fetch_object($res_list_formpago)) { $sql_paiment = "SELECT * FROM ".MAIN_DB_PREFIX."c_paiement"; $sql_paiment .= " WHERE "; $sql_paiment .= " entity = ".$entidad; $sql_paiment .= " AND (code = '".$obj_formpago->cod_doli."' OR accountancy_code = '".$obj_formpago->code."')"; //print $sql_paiment.'
    '; dol_syslog('CORE CFDIMX: ' . $sql_paiment); $res_paiment = $db->query($sql_paiment); $num_paiment = $db->num_rows($res_paiment); if($num_paiment > 0){ $obj_aux_f_pago = $db->fetch_object($res_paiment); $update_f_pago = "UPDATE ".MAIN_DB_PREFIX."c_paiement"; $update_f_pago .= " SET"; $update_f_pago .= " accountancy_code = '".trim($obj_formpago->code)."'"; $update_f_pago .= " WHERE"; $update_f_pago .= " id = ".$obj_aux_f_pago->id; dol_syslog('update_f_pago: ' . $update_f_pago); $res_update = $db->query($update_f_pago); }else{ $insert_f_pago = "INSERT INTO ".MAIN_DB_PREFIX."c_paiement"; $insert_f_pago .= " (entity, code, libelle, type, active, accountancy_code)"; $insert_f_pago .= " VALUES"; $insert_f_pago .= " ("; $insert_f_pago .= "'".$entidad."',"; $insert_f_pago .= "'".$obj_formpago->cod_doli."',"; $insert_f_pago .= "'".$obj_formpago->label."',"; $insert_f_pago .= " 2,"; $insert_f_pago .= " 0,"; $insert_f_pago .= "'".trim($obj_formpago->code)."'"; $insert_f_pago .= " )"; dol_syslog('insert_f_pago: ' . $insert_f_pago); $res_insert = $db->query($insert_f_pago); } } } #Termina Actualizacion del Catalogo de Formas de Pago con código Dolibar ##Inicia verificar si existe Clave de Pagos $sql_val_claveprodserv = "SELECT * FROM ".MAIN_DB_PREFIX."c_cfdimx_clave_prodserv"; $sql_val_claveprodserv .= " WHERE code = '84111506'"; $res_val_claveprodserv = $db->query($sql_val_claveprodserv); $num_val_claveprodserv = $db->num_rows($res_val_claveprodserv); if($num_val_claveprodserv == 0){ $sql_claveprodserv = "INSERT INTO ".MAIN_DB_PREFIX."c_cfdimx_clave_prodserv"; $sql_claveprodserv .= "(code, label, active) VALUES ('84111506','84111506 - Servicios de facturación',1);"; $res_claveprodserv = $db->query($sql_claveprodserv); } ##Termina verificar si existe Clave de Pagos ##Inicia veificar nueva Clave de Exportacion $sql_val_exportacion = "SELECT * FROM ".MAIN_DB_PREFIX."c_cfdimx_exportacion"; $sql_val_exportacion .= " WHERE code = '04'"; $res_val_exportacion = $db->query($sql_val_exportacion); $num_val_exportacion = $db->num_rows($res_val_exportacion); if($num_val_exportacion == 0){ $sql_exportacion = "INSERT INTO ".MAIN_DB_PREFIX."c_cfdimx_exportacion"; $sql_exportacion .= "(code, label, active) VALUES ('04','04 - Definitiva con clave distinta a A1 o cuando no existe enajenación en términos del CFF',1);"; $res_exportacion = $db->query($sql_exportacion); } ##Termina veificar nueva Clave de Exportacion ##Inicia Extrafields para autocompletar Facturas con Comercio Exterior CCE 2.0 $archivo = dol_buildpath('/cfdimx/facture/card_cce20.php'); if(file_exists($archivo)){ ##Campos Productos #Clave Unidad Aduana $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "uaduana" AND elementtype="product" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET "; $sql .= " list = 1"; $sql .= " WHERE name='uaduana' AND elementtype='product' AND entity = ".$entidad; //echo $sql."
    "; $db->query($sql); }else{ $extrafields->addExtraField('uaduana', 'Unidad Aduana', 'sellist', 2001, '', 'product', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:43:"c_cfdimx_unidad_aduana:label:code::active=1";N;}}'); } #Clave Fraccion Arancelaria $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "f_arancelaria" AND elementtype="product" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET "; $sql .= " list = 1"; $sql .= " WHERE name='f_arancelaria' AND elementtype='product' AND entity = ".$entidad; //echo $sql."
    "; $db->query($sql); }else{ $extrafields->addExtraField('f_arancelaria', 'Fracción Arancelaria', 'sellist', 2002, '', 'product', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:43:"c_cfdimx_f_arancelaria:label:code::active=1";N;}}'); } #Marca Aduana $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "marcaaduana" AND elementtype="product" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { }else{ $extrafields->addExtraField('marcaaduana', 'Marca Aduana', 'varchar', 2004, '255', 'product', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:0:"";N;}}'); } #Factor de Equivalencia de Unidades (SAT -> Aduana) $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "fact_equiv" AND elementtype="product" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { }else{ $extrafields->addExtraField('fact_equiv', 'Factor de Equivalencia de Unidades (SAT -> Aduana)', 'double', 2005, '24,8', 'product', 0, 0, 1, 'a:1:{s:7:"options";a:1:{s:0:"";N;}}'); } #Campos Partidas de Factura #Clave Unidad Aduana $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "uaduana" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET "; $sql .= " list = 1"; $sql .= " WHERE name='uaduana' AND elementtype='facturedet' AND entity = ".$entidad; //echo $sql."
    "; $db->query($sql); }else{ $extrafields->addExtraField('uaduana', 'Unidad Aduana', 'sellist', 2001, '', 'facturedet', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:43:"c_cfdimx_unidad_aduana:label:code::active=1";N;}}'); } #Clave Fraccion Arancelaria $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "f_arancelaria" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { $res = $db->fetch_object($r); $sql = "UPDATE ".MAIN_DB_PREFIX."extrafields"; $sql .= " SET "; $sql .= " list = 1"; $sql .= " WHERE name='f_arancelaria' AND elementtype='facturedet' AND entity = ".$entidad; //echo $sql."
    "; $db->query($sql); }else{ $extrafields->addExtraField('f_arancelaria', 'Fracción Arancelaria', 'sellist', 2002, '', 'facturedet', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:43:"c_cfdimx_f_arancelaria:label:code::active=1";N;}}'); } #Marca Aduana $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "marcaaduana" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { }else{ $extrafields->addExtraField('marcaaduana', 'Marca Aduana', 'varchar', 2004, '255', 'facturedet', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:0:"";N;}}'); } #Factor de Equivalencia de Unidades (SAT -> Aduana) $sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'extrafields WHERE name LIKE "fact_equiv" AND elementtype="facturedet" AND entity = '.$entidad; //echo $sql; $r = $db->query($sql); if ($db->num_rows($r) > 0) { }else{ $extrafields->addExtraField('fact_equiv', 'Factor de Equivalencia de Unidades (SAT -> Aduana)', 'double', 2005, '24,8', 'facturedet', 0, 0, 1, 'a:1:{s:7:"options";a:1:{s:0:"";N;}}'); } } ##Termina Extrafields para autocompletar Facturas con Comercio Exterior $sql_val_huso_horario = "SELECT * FROM ".MAIN_DB_PREFIX."c_cfdimx_husoh"; $sql_val_huso_horario .= " WHERE code = 8"; $res_val_huso_horario = $db->query($sql_val_huso_horario); $num_val_huso_horario = $db->num_rows($res_val_huso_horario); if($num_val_huso_horario == 0){ $sql_huso_horario = "INSERT INTO ".MAIN_DB_PREFIX."c_cfdimx_husoh"; $sql_huso_horario .= "(code, label, active) VALUES ('8','America/El_Salvador',1);"; $sql_huso_horario = $db->query($sql_huso_horario); } ##Inicia Registro de nueva Zona Horaria ## Ajuste para mostrar en consutlas $sql = "SHOW COLUMNS FROM ".MAIN_DB_PREFIX."facture LIKE 'subtype'"; $resql = $db->query($sql); if($resql){ $i = 0; $num = $db->num_rows($resql); $iniciar_proceso = 0; if($num > 0){ $lista_campos = array("subtype"); while ($i < $num) { $obj = $db->fetch_object($resql); // Se comprueba que el nombre se exacto a subtype if(in_array($obj->Field, $lista_campos)){ $iniciar_proceso = 1; break; } $i++; } }else{ // Crear campo subtype $iniciar_proceso = 1; $sql = "ALTER TABLE ".MAIN_DB_PREFIX."facture ADD COLUMN subtype smallint DEFAULT NULL"; $resql = $db->query($sql); } if($iniciar_proceso == 1){ // Se obtiene todas las facturas $sql = "SELECT fk_facture, cancelado FROM ".MAIN_DB_PREFIX."cfdimx"; $sql .= " WHERE"; $sql .= " entity_id = ".$entidad; $resql = $db->query($sql); if($resql){ $i = 0; $num = $db->num_rows($resql); while ($i < $num) { $obj = $db->fetch_object($resql); if($obj->fk_facture > 0 && in_array($obj->cancelado, array(0, 1))){ $valor = ($obj->cancelado == 0 ? 1000 : 1001); $update = "UPDATE ".MAIN_DB_PREFIX."facture"; $update .= " SET"; $update .= " subtype = ".$valor; $update .= " WHERE"; $update .= " rowid = ".$obj->fk_facture; $res = $db->query($update); } $i++; } } } } $result = $this->_load_tables('/cfdimx/sql/'); $sql = array(); return $this->_init($sql, $options); /* global $conf, $langs; //$result = $this->_load_tables('/install/mysql/', 'cfdimx'); $result = $this->_load_tables('/cfdimx/sql/'); if ($result < 0) { return -1; // Do not activate module if error 'not allowed' returned when loading module SQL queries (the _load_table run sql with run_sql with the error allowed parameter set to 'default') } // Create extrafields during init //include_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; //$extrafields = new ExtraFields($this->db); //$result1=$extrafields->addExtraField('cfdimx_myattr1', "New Attr 1 label", 'boolean', 1, 3, 'thirdparty', 0, 0, '', '', 1, '', 0, 0, '', '', 'cfdimx@cfdimx', 'isModEnabled("cfdimx")'); //$result2=$extrafields->addExtraField('cfdimx_myattr2', "New Attr 2 label", 'varchar', 1, 10, 'project', 0, 0, '', '', 1, '', 0, 0, '', '', 'cfdimx@cfdimx', 'isModEnabled("cfdimx")'); //$result3=$extrafields->addExtraField('cfdimx_myattr3', "New Attr 3 label", 'varchar', 1, 10, 'bank_account', 0, 0, '', '', 1, '', 0, 0, '', '', 'cfdimx@cfdimx', 'isModEnabled("cfdimx")'); //$result4=$extrafields->addExtraField('cfdimx_myattr4', "New Attr 4 label", 'select', 1, 3, 'thirdparty', 0, 1, '', array('options'=>array('code1'=>'Val1','code2'=>'Val2','code3'=>'Val3')), 1,'', 0, 0, '', '', 'cfdimx@cfdimx', 'isModEnabled("cfdimx")'); //$result5=$extrafields->addExtraField('cfdimx_myattr5', "New Attr 5 label", 'text', 1, 10, 'user', 0, 0, '', '', 1, '', 0, 0, '', '', 'cfdimx@cfdimx', 'isModEnabled("cfdimx")'); // Permissions $this->remove($options); $sql = array(); // Document templates $moduledir = dol_sanitizeFileName('cfdimx'); $myTmpObjects = array(); $myTmpObjects['MyObject'] = array('includerefgeneration'=>0, 'includedocgeneration'=>0); foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { if ($myTmpObjectKey == 'MyObject') { continue; } if ($myTmpObjectArray['includerefgeneration']) { $src = DOL_DOCUMENT_ROOT.'/install/doctemplates/'.$moduledir.'/template_myobjects.odt'; $dirodt = DOL_DATA_ROOT.'/doctemplates/'.$moduledir; $dest = $dirodt.'/template_myobjects.odt'; if (file_exists($src) && !file_exists($dest)) { require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; dol_mkdir($dirodt); $result = dol_copy($src, $dest, 0, 0); if ($result < 0) { $langs->load("errors"); $this->error = $langs->trans('ErrorFailToCopyFile', $src, $dest); return 0; } } $sql = array_merge($sql, array( "DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = 'standard_".strtolower($myTmpObjectKey)."' AND type = '".$this->db->escape(strtolower($myTmpObjectKey))."' AND entity = ".((int) $conf->entity), "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('standard_".strtolower($myTmpObjectKey)."', '".$this->db->escape(strtolower($myTmpObjectKey))."', ".((int) $conf->entity).")", "DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = 'generic_".strtolower($myTmpObjectKey)."_odt' AND type = '".$this->db->escape(strtolower($myTmpObjectKey))."' AND entity = ".((int) $conf->entity), "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('generic_".strtolower($myTmpObjectKey)."_odt', '".$this->db->escape(strtolower($myTmpObjectKey))."', ".((int) $conf->entity).")" )); } } return $this->_init($sql, $options); */ } /** * Function called when module is disabled. * Remove from database constants, boxes and permissions from Dolibarr database. * Data directories are not deleted * * @param string $options Options when enabling module ('', 'noboxes') * @return int 1 if OK, 0 if KO */ public function remove($options = '') { $sql = array(); return $this->_remove($sql, $options); } }