/** * *Crear un nuevo impuesto. Falta revisar bien lo de contabilidad, para saber como se van a ligar los impuestos con las cuentas, pero omitiendo las ligas con las cuentas seria esto. * * @param activo bool Determina si el impuesto est� activo, (0) No, (1) Si, Default 1 * @param aplica string Determina el alcance del impuesto, "compra", "venta", "ambos". * @param codigo string Determina el c�digo asociado al impuesto * @param importe float Determina el monto(importe) asociado a este impuesto. Antes: monto_porcentaje; Para impuestos de tipo porcentaje, introduzca valor % entre 0-1 * @param incluido_precio bool Determina si el impuesto se incluye en el precio, (0) No, (1) Si * @param nombre string Nombre del impuesto * @param tipo int El metodo de calculo del importe del impuesto. Porcentaje (0), Importe fijo (1), ninguno (2), saldo pendiente (3) * @return id_impuesto int Id del impuesto insertado. **/ public static function Nuevo($activo, $aplica, $codigo, $importe, $incluido_precio, $nombre, $descripcion = null, $tipo = "") { $ni = new Impuesto(); $ni->setImporte($importe); $ni->setNombre($nombre); $ni->setCodigo($codigo); $ni->setIncluidoPrecio($incluido_precio); $ni->setAplica($aplica); $ni->setTipo($tipo); $ni->setNombre($nombre); $ni->setActivo($activo); $ni->setDescripcion($descripcion); try { ImpuestoDAO::save($ni); } catch (Exception $e) { throw new InvalidDatabaseOperationException($e); } Logger::log("Nuevo impuesto..." . $ni->getIdImpuesto() . " creado"); return array("id_impuesto" => $ni->getIdImpuesto()); }
/** * *Crear un nuevo impuesto. * * @param monto_porcentaje float monto o porcentaje que representa este impuesto * @param nombre string Nombre del impuesto * @param es_monto bool Si es verdadero, el campo de monto_porcentaje sera tomado como un monto fijo, si es falso, sera tomado como un porcentaje * @param descripcion string Descripcion del impuesto * @return id_impuesto int Id del impuesto insertado. **/ public static function NuevoImpuesto($es_monto, $monto_porcentaje, $nombre, $descripcion = null) { Logger::log("Creando un nuevo impuesto"); //Se validan los parametros recibidos $e = self::validarEsMonto($es_monto); if (is_string($e)) { Logger::error($e); throw new Exception($e); } $e = self::validarMontoPorcentaje($monto_porcentaje); if (is_string($e)) { Logger::error($e); throw new Exception($e); } $e = self::validarNombre($nombre); if (is_string($e)) { Logger::error($e); throw new Exception($e); } if (!is_null($descripcion)) { $e = self::validarDescripcion($descripcion); if (is_string($e)) { Logger::error($e); throw new Exception($e); } } $impuesto = new Impuesto(array("es_monto" => $es_monto, "monto_porcentaje" => $monto_porcentaje, "nombre" => $nombre, "descripcion" => $descripcion)); DAO::transBegin(); try { ImpuestoDAO::save($impuesto); } catch (Exception $e) { DAO::transRollback(); Logger::error("No se ha podido crear el nuevo impuesto: " . $e); throw new Exception("No se ha podido crear al nuevo impuesto, consulte a su administrador de sistema"); } DAO::transEnd(); Logger::log("Impuesto creado exitosamente"); return array("id_impuesto" => $impuesto->getIdImpuesto()); }