本文整理汇总了PHP中factura_cliente::get_lineas_iva方法的典型用法代码示例。如果您正苦于以下问题:PHP factura_cliente::get_lineas_iva方法的具体用法?PHP factura_cliente::get_lineas_iva怎么用?PHP factura_cliente::get_lineas_iva使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类factura_cliente
的用法示例。
在下文中一共展示了factura_cliente::get_lineas_iva方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: imprimir_ticket
/**
* A partir de una factura añade un ticket a la cola de impresión de este terminal.
* @param \factura_cliente $factura
* @param \empresa $empresa
* @param type $imprimir_descripciones
* @param type $imprimir_observaciones
*/
public function imprimir_ticket(&$factura, &$empresa, $imprimir_descripciones = TRUE, $imprimir_observaciones = FALSE)
{
$medio = $this->anchopapel / 2.5;
$this->add_linea_big($this->center_text($this->sanitize($empresa->nombre), $medio) . "\n");
if ($empresa->lema != '') {
$this->add_linea($this->center_text($this->sanitize($empresa->lema)) . "\n\n");
} else {
$this->add_linea("\n");
}
$this->add_linea($this->center_text($this->sanitize($empresa->direccion) . " - " . $this->sanitize($empresa->ciudad)) . "\n");
$this->add_linea($this->center_text(FS_CIFNIF . ": " . $empresa->cifnif));
$this->add_linea("\n\n");
if ($empresa->horario != '') {
$this->add_linea($this->center_text($this->sanitize($empresa->horario)) . "\n\n");
}
$linea = "\n" . ucfirst(FS_FACTURA_SIMPLIFICADA) . ": " . $factura->codigo . "\n";
$linea .= "\n" . $factura->tipo_comprobante . "\n";
$linea .= "NCF: " . $factura->numero2 . "\n";
$linea .= $factura->fecha . " " . Date('H:i', strtotime($factura->hora)) . "\n";
$this->add_linea($linea);
$this->add_linea("Cliente: " . $this->sanitize($factura->nombrecliente) . "\n");
$this->add_linea("Empleado: " . $factura->codagente . "\n\n");
if ($imprimir_observaciones) {
$this->add_linea('Observaciones: ' . $this->sanitize($factura->observaciones) . "\n\n");
}
$width = $this->anchopapel - 15;
$this->add_linea(sprintf("%3s", "Ud.") . " " . sprintf("%-" . $width . "s", "Articulo") . " " . sprintf("%10s", "TOTAL") . "\n");
$this->add_linea(sprintf("%3s", "---") . " " . sprintf("%-" . $width . "s", substr("--------------------------------------------------------", 0, $width - 1)) . " " . sprintf("%10s", "----------") . "\n");
foreach ($factura->get_lineas() as $col) {
if ($imprimir_descripciones) {
$linea = sprintf("%3s", $col->cantidad) . " " . sprintf("%-" . $width . "s", substr($this->sanitize($col->descripcion), 0, $width - 1)) . " " . sprintf("%10s", $this->show_numero($col->total_iva())) . "\n";
} else {
$linea = sprintf("%3s", $col->cantidad) . " " . sprintf("%-" . $width . "s", $this->sanitize($col->referencia)) . " " . sprintf("%10s", $this->show_numero($col->total_iva())) . "\n";
}
$this->add_linea($linea);
}
$lineaiguales = '';
for ($i = 0; $i < $this->anchopapel; $i++) {
$lineaiguales .= '=';
}
$this->add_linea($lineaiguales . "\n");
$this->add_linea('TOTAL A PAGAR: ' . sprintf("%" . ($this->anchopapel - 15) . "s", $this->show_precio($factura->total, $factura->coddivisa)) . "\n");
$this->add_linea($lineaiguales . "\n");
/// imprimimos los impuestos desglosados
$this->add_linea('TIPO BASE ' . FS_IVA . ' RE' . sprintf('%' . ($this->anchopapel - 24) . 's', 'TOTAL') . "\n");
foreach ($factura->get_lineas_iva() as $imp) {
$this->add_linea(sprintf("%-6s", $imp->iva . '%') . ' ' . sprintf("%-7s", $this->show_numero($imp->neto)) . ' ' . sprintf("%-6s", $this->show_numero($imp->totaliva)) . ' ' . sprintf("%-6s", $this->show_numero($imp->totalrecargo)) . ' ' . sprintf('%' . ($this->anchopapel - 29) . 's', $this->show_numero($imp->totallinea)) . "\n");
}
$lineaiguales .= "\n\n\n\n\n\n\n\n";
$this->add_linea($lineaiguales);
$this->cortar_papel();
}
示例2: generar_asiento_venta
/**
* Genera el asiento contable para una factura de venta.
* Devuelve TRUE si el asiento se ha generado correctamente, False en caso contrario.
* Si genera el asiento, este es accesible desde $this->asiento.
* @param factura_cliente $factura
*/
public function generar_asiento_venta(&$factura)
{
$ok = FALSE;
$this->asiento = FALSE;
$cliente0 = new cliente();
$subcuenta_cli = FALSE;
/// obtenemos las tasas de conversión, para las ocasiones en que la factura está en otra divisa
$tasaconv = 1;
$tasaconv2 = $factura->tasaconv;
if ($factura->coddivisa != $this->empresa->coddivisa) {
$divisa = $this->divisa->get($this->empresa->coddivisa);
if ($divisa) {
$tasaconv = $divisa->tasaconv / $factura->tasaconv;
$tasaconv2 = $divisa->tasaconv_compra;
}
}
/// obtenemos el clientes y su subcuenta
$cliente = $cliente0->get($factura->codcliente);
if ($cliente) {
$subcuenta_cli = $cliente->get_subcuenta($factura->codejercicio);
}
if (!$subcuenta_cli) {
$eje0 = $this->ejercicio->get($factura->codejercicio);
$this->new_message("No se ha podido generar una subcuenta para el cliente\n <a href='" . $eje0->url() . "'>¿Has importado los datos del ejercicio?</a>");
if (!$this->soloasiento) {
$this->new_message("Aun así la <a href='" . $factura->url() . "'>factura</a> se ha generado correctamente,\n pero sin asiento contable.");
}
} else {
$asiento = new asiento();
$asiento->codejercicio = $factura->codejercicio;
if ($factura->idfacturarect) {
$asiento->concepto = ucfirst(FS_FACTURA_RECTIFICATIVA) . " de " . $factura->codigo . " (ventas) - " . $factura->nombrecliente;
} else {
$asiento->concepto = "Factura de venta " . $factura->codigo . " - " . $factura->nombrecliente;
}
$asiento->documento = $factura->codigo;
$asiento->editable = FALSE;
$asiento->fecha = $factura->fecha;
$asiento->importe = abs($factura->total * $tasaconv);
$asiento->tipodocumento = 'Factura de cliente';
if ($asiento->save()) {
$asiento_correcto = TRUE;
$partida0 = new partida();
$partida0->idasiento = $asiento->idasiento;
$partida0->concepto = $asiento->concepto;
$partida0->idsubcuenta = $subcuenta_cli->idsubcuenta;
$partida0->codsubcuenta = $subcuenta_cli->codsubcuenta;
$partida0->debe = $factura->total * $tasaconv;
$partida0->coddivisa = $this->empresa->coddivisa;
$partida0->tasaconv = $tasaconv2;
$partida0->codserie = $factura->codserie;
if (!$partida0->save()) {
$asiento_correcto = FALSE;
$this->new_error_msg("¡Imposible generar la partida para la subcuenta " . $partida0->codsubcuenta . "!");
}
/// generamos una partida por cada impuesto
foreach ($factura->get_lineas_iva() as $li) {
$subcuenta_iva = FALSE;
/// ¿El impuesto tiene una subcuenta específica?
if (isset($this->impuestos[$li->codimpuesto])) {
if ($this->impuestos[$li->codimpuesto]->codsubcuentarep) {
$subcuenta_iva = $this->subcuenta->get_by_codigo($this->impuestos[$li->codimpuesto]->codsubcuentarep, $asiento->codejercicio);
}
}
if (!$subcuenta_iva) {
$subcuenta_iva = $this->subcuenta->get_cuentaesp('IVAREP', $asiento->codejercicio);
}
if ($li->totaliva == 0 and $li->totalrecargo == 0) {
/// no hacemos nada si no hay IVA ni RE
} else {
if ($subcuenta_iva and $asiento_correcto) {
$partida1 = new partida();
$partida1->idasiento = $asiento->idasiento;
$partida1->concepto = $asiento->concepto;
$partida1->idsubcuenta = $subcuenta_iva->idsubcuenta;
$partida1->codsubcuenta = $subcuenta_iva->codsubcuenta;
$partida1->haber = $li->totaliva * $tasaconv;
$partida1->idcontrapartida = $subcuenta_cli->idsubcuenta;
$partida1->codcontrapartida = $subcuenta_cli->codsubcuenta;
$partida1->cifnif = $cliente->cifnif;
$partida1->documento = $asiento->documento;
$partida1->tipodocumento = $asiento->tipodocumento;
$partida1->codserie = $factura->codserie;
$partida1->factura = $factura->numero;
$partida1->baseimponible = $li->neto * $tasaconv;
$partida1->iva = $li->iva;
$partida1->coddivisa = $this->empresa->coddivisa;
$partida1->tasaconv = $tasaconv2;
if (!$partida1->save()) {
$asiento_correcto = FALSE;
$this->new_error_msg("¡Imposible generar la partida para la subcuenta " . $partida1->codsubcuenta . "!");
}
if ($li->recargo != 0) {
$partida11 = new partida();
//.........这里部分代码省略.........