Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
| 1 | <?php |
||
| 31 | class ConsumoFolio extends \sasco\LibreDTE\Sii\Base\Libro |
||
| 32 | { |
||
| 33 | |||
| 34 | private $documentos = []; ///< Documentos que se deben reportar en el consumo |
||
| 35 | |||
| 36 | /** |
||
| 37 | * Método que asigna los documentos que se deberán reportar en el consumo de |
||
| 38 | * folios |
||
| 39 | * @param documentos Arreglo con los códigos de DTEs a reportar |
||
| 40 | * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl) |
||
| 41 | * @version 2016-02-14 |
||
| 42 | */ |
||
| 43 | public function setDocumentos(array $documentos) |
||
| 47 | |||
| 48 | /** |
||
| 49 | * Método que agrega un DTE al listado que se enviará |
||
| 50 | * @param detalle Arreglo con el resumen del DTE que se desea agregar |
||
| 51 | * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl) |
||
| 52 | * @version 2015-12-13 |
||
| 53 | */ |
||
| 54 | public function agregar(array $detalle) |
||
| 58 | |||
| 59 | /** |
||
| 60 | * Método para asignar la caratula |
||
| 61 | * @param caratula Arreglo con datos del envío: RutEnvia, FchResol y NroResol, etc |
||
| 62 | * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl) |
||
| 63 | * @version 2016-08-06 |
||
| 64 | */ |
||
| 65 | public function setCaratula(array $caratula) |
||
| 83 | |||
| 84 | /** |
||
| 85 | * Método que genera el XML del consumo de folios para el envío al SII |
||
| 86 | * @return XML con el envio del consumo de folios firmado o =false si no se pudo generar o firmar el envío |
||
| 87 | * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl) |
||
| 88 | * @version 2015-12-13 |
||
| 89 | */ |
||
| 90 | public function generar() |
||
| 117 | |||
| 118 | /** |
||
| 119 | * Método que entrega la fecha del primer documento que se está reportando |
||
| 120 | * @return Fecha del primer documento que se está reportando |
||
| 121 | * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl) |
||
| 122 | * @version 2015-12-13 |
||
| 123 | */ |
||
| 124 | View Code Duplication | public function getFechaEmisionInicial() |
|
| 133 | |||
| 134 | /** |
||
| 135 | * Método que entrega la fecha del último documento que se está reportando |
||
| 136 | * @return Fecha del último documento que se está reportando |
||
| 137 | * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl) |
||
| 138 | * @version 2015-12-13 |
||
| 139 | */ |
||
| 140 | View Code Duplication | public function getFechaEmisionFinal() |
|
| 149 | |||
| 150 | /** |
||
| 151 | * Método que permite agregar sólo resumen al libro, esto para |
||
| 152 | * poder agregar, por ejemplo, un día en el cual no se consumieron folios |
||
| 153 | * @param resumen Arreglo Eje: ['TipoDocumento' => 39, 'MntTotal' => 0, 'FoliosEmitidos' => 0, 'FoliosAnulados' => 0, 'FoliosUtilizados' => 0] |
||
| 154 | * @author Adonias Vasquez (adonias.vasquez[at]epys.cl) |
||
| 155 | * @version 2017-09-29 |
||
| 156 | */ |
||
| 157 | public function setResumen($resumen) |
||
| 172 | |||
| 173 | |||
| 174 | /** |
||
| 175 | * Método que obtiene los datos para generar los tags de Resumen del |
||
| 176 | * consumo de folios |
||
| 177 | * @return Arreglo con los datos para generar los tags Resumen |
||
| 178 | * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl) |
||
| 179 | * @version 2016-02-14 |
||
| 180 | */ |
||
| 181 | private function getResumen() |
||
| 241 | |||
| 242 | /** |
||
| 243 | * Método que determina los rangos de los folios para el resumen del consumo |
||
| 244 | * de folios |
||
| 245 | * @param folios Arreglo con los folios que se deben generar sus rangos |
||
| 246 | * @return Arreglo con cada uno de los rangos de folios |
||
| 247 | * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl) |
||
| 248 | * @version 2015-12-13 |
||
| 249 | */ |
||
| 250 | private function getRangos($folios) |
||
| 275 | |||
| 276 | /** |
||
| 277 | * Método que entrega la secuencia del envio |
||
| 278 | * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl) |
||
| 279 | * @version 2016-02-14 |
||
| 280 | */ |
||
| 281 | public function getSecuencia() |
||
| 285 | |||
| 286 | } |
||
| 287 |
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example: