protected function private_core() { /// ¿El usuario tiene permiso para eliminar en esta página? $this->allow_delete = $this->user->allow_delete_on(__CLASS__); $this->impuesto = new impuesto(); /// Leemos las subcuentas predeterminadas $subcuenta = new subcuenta(); $this->codsubcuentasop = ''; $subcuentasop = $subcuenta->get_cuentaesp('IVASOP', $this->empresa->codejercicio); if ($subcuentasop) { $this->codsubcuentasop = $subcuentasop->codsubcuenta; } $this->codsubcuentarep = ''; $subcuentarep = $subcuenta->get_cuentaesp('IVAREP', $this->empresa->codejercicio); if ($subcuentarep) { $this->codsubcuentarep = $subcuentarep->codsubcuenta; } if (isset($_GET['delete'])) { if (!$this->user->admin) { $this->new_error_msg('Sólo un administrador puede eliminar impuestos.'); } else { $impuesto = $this->impuesto->get($_GET['delete']); if ($impuesto) { if ($impuesto->delete()) { $this->new_message('Impuesto eliminado correctamente.'); } else { $this->new_error_msg('Ha sido imposible eliminar el impuesto.'); } } else { $this->new_error_msg('Impuesto no encontrado.'); } } } else { if (isset($_POST['codimpuesto'])) { $impuesto = $this->impuesto->get($_POST['codimpuesto']); if (!$impuesto) { $impuesto = new impuesto(); $impuesto->codimpuesto = $_POST['codimpuesto']; } $impuesto->descripcion = $_POST['descripcion']; $impuesto->codsubcuentarep = NULL; if ($_POST['codsubcuentarep'] != '') { $impuesto->codsubcuentarep = $_POST['codsubcuentarep']; } $impuesto->codsubcuentasop = NULL; if ($_POST['codsubcuentasop'] != '') { $impuesto->codsubcuentasop = $_POST['codsubcuentasop']; } $impuesto->iva = floatval($_POST['iva']); $impuesto->recargo = floatval($_POST['recargo']); if ($impuesto->save()) { $this->new_message("Impuesto " . $impuesto->codimpuesto . " guardado correctamente."); } else { $this->new_error_msg("¡Error al guardar el impuesto!"); } } } }
public function set_impuesto($cod) { $impuesto = new impuesto(); $imp0 = $impuesto->get($cod); if ($imp0) { $this->codimpuesto = $imp0->codimpuesto; $this->iva = $imp0->iva; } else { $this->codimpuesto = NULL; $this->iva = 0; } }
public function __construct() { $this->asiento = FALSE; $this->ejercicio = new ejercicio(); $impuesto = new impuesto(); $this->impuestos = array(); foreach ($impuesto->all() as $imp) { $this->impuestos[$imp->codimpuesto] = $imp; } $this->messages = array(); $this->errors = array(); $this->soloasiento = FALSE; }
public function __construct() { $this->asiento = FALSE; $this->cuenta_banco = new cuenta_banco(); $this->divisa = new divisa(); $this->ejercicio = new ejercicio(); $this->empresa = new empresa(); $this->forma_pago = new forma_pago(); $this->subcuenta = new subcuenta(); $impuesto = new impuesto(); $this->impuestos = array(); foreach ($impuesto->all() as $imp) { $this->impuestos[$imp->codimpuesto] = $imp; } $this->messages = array(); $this->errors = array(); $this->soloasiento = FALSE; }
protected function process() { $this->impuesto = new impuesto(); if (isset($_GET['delete'])) { if (FS_DEMO) { $this->new_error_msg('En el modo demo no puedes eliminar impuestos. Otro usuario podría necesitarlo.'); } else { if (!$this->user->admin) { $this->new_error_msg('Sólo un administrador puede eliminar impuestos.'); } else { $impuesto = $this->impuesto->get($_GET['delete']); if ($impuesto) { if ($impuesto->delete()) { $this->new_message('Impuesto eliminado correctamente.'); } else { $this->new_error_msg('Ha sido imposible eliminar el impuesto.'); } } else { $this->new_error_msg('Impuesto no encontrado.'); } } } } else { if (isset($_POST['codimpuesto'])) { $impuesto = $this->impuesto->get($_POST['codimpuesto']); if (!$impuesto) { $impuesto = new impuesto(); $impuesto->codimpuesto = $_POST['codimpuesto']; } $impuesto->descripcion = $_POST['descripcion']; $impuesto->iva = floatval($_POST['iva']); $impuesto->recargo = floatval($_POST['recargo']); if ($impuesto->save()) { $this->new_message("Impuesto " . $impuesto->codimpuesto . " guardado correctamente."); } else { $this->new_error_msg("¡Error al guardar el impuesto!"); } } } }
protected function process() { $this->impuesto = new impuesto(); /// ¿El usuario tiene permiso para eliminar en esta página? $this->allow_delete = $this->user->allow_delete_on(__CLASS__); if (isset($_GET['delete'])) { if (!$this->user->admin) { $this->new_error_msg('Sólo un administrador puede eliminar impuestos.'); } else { $impuesto = $this->impuesto->get($_GET['delete']); if ($impuesto) { if ($impuesto->delete()) { $this->new_message('Impuesto eliminado correctamente.'); } else { $this->new_error_msg('Ha sido imposible eliminar el impuesto.'); } } else { $this->new_error_msg('Impuesto no encontrado.'); } } } else { if (isset($_POST['codimpuesto'])) { $impuesto = $this->impuesto->get($_POST['codimpuesto']); if (!$impuesto) { $impuesto = new impuesto(); $impuesto->codimpuesto = $_POST['codimpuesto']; } $impuesto->descripcion = $_POST['descripcion']; $impuesto->iva = floatval($_POST['iva']); $impuesto->recargo = floatval($_POST['recargo']); if ($impuesto->save()) { $this->new_message("Impuesto " . $impuesto->codimpuesto . " guardado correctamente."); } else { $this->new_error_msg("¡Error al guardar el impuesto!"); } } } }
/** * Devuelve el % de IVA del artículo. * Si $reload es TRUE, vuelve a consultarlo en lugar de usar los datos cargados. * @param type $reload * @return type */ public function get_iva($reload = TRUE) { if ($reload) { $this->iva = NULL; } if (is_null($this->iva)) { $this->iva = 0; if (!is_null($this->codimpuesto)) { $encontrado = FALSE; foreach (self::$impuestos as $i) { if ($i->codimpuesto == $this->codimpuesto) { $this->iva = $i->iva; $encontrado = TRUE; break; } } if (!$encontrado) { $imp = new impuesto(); $imp0 = $imp->get($this->codimpuesto); if ($imp0) { $this->iva = $imp0->iva; self::$impuestos[] = $imp0; } } } } return $this->iva; }
public function impuestos() { $tratamiento = false; $impuestos = new impuesto(); //Eliminamos los Impuestos que no son de RD $lista_impuestos = array(); foreach ($this->impuestos_rd as $imp) { $lista_impuestos[] = $imp['porcentaje']; } foreach ($impuestos->all() as $imp) { if (!in_array($imp->iva, $lista_impuestos)) { $imp->delete(); } } //Agregamos los Impuestos de RD foreach ($this->impuestos_rd as $imp) { if (!$impuestos->get_by_iva($imp['porcentaje'])) { $imp0 = new impuesto(); $imp0->codimpuesto = $imp['codigo']; $imp0->descripcion = $imp['descripcion']; $imp0->iva = $imp['porcentaje']; $imp0->recargo = $imp['recargo']; $imp0->codsubcuentasop = $imp['subcuenta_compras']; $imp0->codsubcuentarep = $imp['subcuenta_ventas']; if ($imp0->save()) { $tratamiento = true; } } } //Corregimos la información de las Cuentas especiales con los nombres correctos $cuentas_especiales_rd['IVAACR'] = 'Cuentas acreedoras de ITBIS en la regularización'; $cuentas_especiales_rd['IVASOP'] = 'Cuentas de ITBIS Compras'; $cuentas_especiales_rd['IVARXP'] = 'Cuentas de ITBIS exportaciones'; $cuentas_especiales_rd['IVASIM'] = 'Cuentas de ITBIS importaciones'; $cuentas_especiales_rd['IVAREX'] = 'Cuentas de ITBIS para clientes exentos'; $cuentas_especiales_rd['IVAREP'] = 'Cuentas de ITBIS Ventas'; $cuentas_especiales = new cuenta_especial(); foreach ($cuentas_especiales_rd as $id => $desc) { $linea = $cuentas_especiales->get($id); if ($linea->descripcion !== $desc) { $linea->descripcion = $desc; $linea->save(); } } if ($tratamiento) { $this->new_message('Información de impuestos actualizada correctamente'); } else { $this->new_message('No se modificaron datos de impuestos previamente tratados.'); } }
/** * Cambia el impuesto asociado al artículo. * @param type $codimpuesto */ public function set_impuesto($codimpuesto) { if ($codimpuesto != $this->codimpuesto) { $this->codimpuesto = $codimpuesto; $encontrado = FALSE; foreach (self::$impuestos as $i) { if ($i->codimpuesto == $this->codimpuesto) { $this->iva = floatval($i->iva); $encontrado = TRUE; break; } } if (!$encontrado) { $imp = new impuesto(); $imp0 = $imp->get($this->codimpuesto); if ($imp0) { $this->iva = floatval($imp0->iva); self::$impuestos[] = $imp0; } else { $this->iva = 0; } } } }
public function move_codimpuesto($cod0, $cod1, $mantener = FALSE) { if ($mantener) { $this->clean_cache(); $impuesto = new impuesto(); $impuesto0 = $impuesto->get($cod0); $impuesto1 = $impuesto->get($cod1); $multiplo = (100 + $impuesto0->iva) / (100 + $impuesto1->iva); return $this->db->exec("UPDATE " . $this->table_name . " SET codimpuesto = " . $this->var2str($cod1) . ", pvp = (pvp*" . $multiplo . ") WHERE codimpuesto = " . $this->var2str($cod0) . ";"); } else { return $this->db->exec("UPDATE " . $this->table_name . " SET codimpuesto = " . $this->var2str($cod1) . " WHERE codimpuesto = " . $this->var2str($cod0) . ";"); } }
private function generar_albaran() { $albaran = new albaran_cliente(); $albaran->apartado = $this->servicio->apartado; $albaran->cifnif = $this->servicio->cifnif; $albaran->ciudad = $this->servicio->ciudad; $albaran->codagente = $this->servicio->codagente; if ($this->servicio->codalmacen) { $albaran->codalmacen = $this->servicio->codalmacen; } else { $albaran->codalmacen = $this->empresa->codalmacen; } $albaran->codcliente = $this->servicio->codcliente; $albaran->coddir = $this->servicio->coddir; $albaran->coddivisa = $this->servicio->coddivisa; $albaran->tasaconv = $this->servicio->tasaconv; $albaran->codpago = $this->servicio->codpago; $albaran->codpais = $this->servicio->codpais; $albaran->codpostal = $this->servicio->codpostal; $albaran->codserie = $this->servicio->codserie; $albaran->direccion = $this->servicio->direccion; $albaran->neto = $this->servicio->neto; $albaran->nombrecliente = $this->servicio->nombrecliente; $albaran->observaciones = $this->servicio->observaciones; $albaran->provincia = $this->servicio->provincia; $albaran->total = $this->servicio->total; $albaran->totaliva = $this->servicio->totaliva; $albaran->numero2 = $this->servicio->numero2; $albaran->irpf = $this->servicio->irpf; $albaran->porcomision = $this->servicio->porcomision; $albaran->totalirpf = $this->servicio->totalirpf; $albaran->totalrecargo = $this->servicio->totalrecargo; /** * Obtenemos el ejercicio para la fecha de hoy (puede que * no sea el mismo ejercicio que el del servicio, por ejemplo * si hemos cambiado de año) */ $eje0 = $this->ejercicio->get_by_fecha($albaran->fecha); $albaran->codejercicio = $eje0->codejercicio; if (!$eje0) { $this->new_error_msg("Ejercicio no encontrado."); } else { if (!$eje0->abierto()) { $this->new_error_msg("El ejercicio está cerrado."); } else { if ($albaran->save()) { $this->new_message("El " . FS_ALBARAN . " " . $albaran->codigo . " ha sido creado correctamente."); $continuar = TRUE; $art0 = new articulo(); $i = 0; foreach ($this->servicio->get_lineas() as $l) { $n = new linea_albaran_cliente(); $n->idalbaran = $albaran->idalbaran; $n->cantidad = $l->cantidad; $n->codimpuesto = $l->codimpuesto; $n->descripcion = $l->descripcion; if ($i == 0) { if ($this->setup['servicios_linea'] && $this->setup['servicios_linea1']) { $n->descripcion .= "\n"; if ($this->setup['servicios_material_linea']) { $n->descripcion .= $this->setup['st_material'] . ": " . $this->servicio->material . "\n"; } if ($this->setup['servicios_material_estado_linea']) { $n->descripcion .= $this->setup['st_material_estado'] . ": " . $this->servicio->material_estado . "\n"; } if ($this->setup['servicios_accesorios_linea']) { $n->descripcion .= $this->setup['st_accesorios'] . ": " . $this->servicio->accesorios . "\n"; } if ($this->setup['servicios_descripcion_linea']) { $n->descripcion .= $this->setup['st_descripcion'] . ": " . $this->servicio->descripcion . "\n"; } if ($this->setup['servicios_solucion_linea']) { $n->descripcion .= $this->setup['st_solucion'] . ": " . $this->servicio->solucion . "\n"; } if ($this->setup['servicios_fechainicio_linea']) { $n->descripcion .= $this->setup['st_fechainicio'] . ": " . $this->servicio->fechainicio . " "; } if ($this->setup['servicios_fechafin_linea']) { $n->descripcion .= $this->setup['st_fechafin'] . ": " . $this->servicio->fechafin . " "; } if ($this->setup['servicios_garantia_linea']) { $n->descripcion .= $this->setup['st_garantia'] . ": " . $this->servicio->garantia . "\n"; } } } $n->dtopor = $l->dtopor; $n->irpf = $l->irpf; $n->iva = $l->iva; $n->pvpsindto = $l->pvpsindto; $n->pvptotal = $l->pvptotal; $n->pvpunitario = $l->pvpunitario; $n->recargo = $l->recargo; $n->referencia = $l->referencia; $i++; if ($n->save()) { /// descontamos del stock if (!is_null($n->referencia)) { $articulo = $art0->get($n->referencia); if ($articulo) { $articulo->sum_stock($albaran->codalmacen, 0 - $l->cantidad); } } } else { $continuar = FALSE; $this->new_error_msg("¡Imposible guardar la línea el artículo " . $n->referencia . "! "); break; } } if ($this->setup['servicios_linea'] && !$this->setup['servicios_linea1']) { /// generamos la linea con detalles del servicio if ($this->setup['servicios_linea']) { $ns = new linea_albaran_cliente(); $ns->idalbaran = $albaran->idalbaran; $ns->cantidad = '0'; /// usamos el impuestos por defecto $imp0 = new impuesto(); foreach ($imp0->all() as $imp) { if ($imp->is_default()) { $ns->codimpuesto = $imp->codimpuesto; $ns->iva = $imp->iva; } } $ns->descripcion = FS_SERVICIO . ": " . $this->servicio->codigo . " Fecha: " . $this->servicio->fecha . "\n"; if ($this->setup['servicios_material_linea']) { $ns->descripcion .= $this->setup['st_material'] . ": " . $this->servicio->material . "\n"; } if ($this->setup['servicios_material_estado_linea']) { $ns->descripcion .= $this->setup['st_material_estado'] . ": " . $this->servicio->material_estado . "\n"; } if ($this->setup['servicios_accesorios_linea']) { $ns->descripcion .= $this->setup['st_accesorios'] . ": " . $this->servicio->accesorios . "\n"; } if ($this->setup['servicios_descripcion_linea']) { $ns->descripcion .= $this->setup['st_descripcion'] . ": " . $this->servicio->descripcion . "\n"; } if ($this->setup['servicios_solucion_linea']) { $ns->descripcion .= $this->setup['st_solucion'] . ": " . $this->servicio->solucion . "\n"; } if ($this->setup['servicios_fechainicio_linea']) { $ns->descripcion .= $this->setup['st_fechainicio'] . ": " . $this->servicio->fechainicio . " "; } if ($this->setup['servicios_fechafin_linea']) { $ns->descripcion .= $this->setup['st_fechafin'] . ": " . $this->servicio->fechafin . " "; } if ($this->setup['servicios_garantia_linea']) { $ns->descripcion .= $this->setup['st_garantia'] . ": " . $this->servicio->garantia . "\n"; } $ns->dtopor = '0'; $ns->irpf = '0'; $ns->pvpsindto = '0'; $ns->pvptotal = '0'; $ns->pvpunitario = '0'; $ns->recargo = '0'; $ns->referencia = ''; $ns->save(); } } if ($continuar) { $this->servicio->idalbaran = $albaran->idalbaran; } else { if ($albaran->delete()) { $this->new_error_msg("El " . FS_ALBARAN . " se ha borrado."); } else { $this->new_error_msg("¡Imposible borrar el " . FS_ALBARAN . "!"); } } } else { $this->new_error_msg("¡Imposible guardar el " . FS_ALBARAN . "!"); } } } }