本文整理汇总了PHP中ejercicio类的典型用法代码示例。如果您正苦于以下问题:PHP ejercicio类的具体用法?PHP ejercicio怎么用?PHP ejercicio使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ejercicio类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: private_core
protected function private_core()
{
/// ¿El usuario tiene permiso para eliminar en esta página?
$this->allow_delete = $this->user->allow_delete_on(__CLASS__);
$eje = new ejercicio();
$this->ejercicios = $eje->all();
$this->serie = new serie();
$fsvar = new fs_var();
if (isset($_GET['num_personalizada'])) {
$this->num_personalizada = TRUE;
$fsvar->simple_save('numeracion_personalizada', $this->num_personalizada);
} else {
$this->num_personalizada = $fsvar->simple_get('numeracion_personalizada');
}
if (isset($_POST['codserie'])) {
$serie = $this->serie->get($_POST['codserie']);
if (!$serie) {
$serie = new serie();
$serie->codserie = $_POST['codserie'];
}
$serie->descripcion = $_POST['descripcion'];
$serie->siniva = isset($_POST['siniva']);
$serie->irpf = floatval($_POST['irpf']);
if ($this->num_personalizada) {
$serie->codejercicio = NULL;
$serie->numfactura = 1;
if ($_POST['codejercicio'] != '') {
$serie->codejercicio = $_POST['codejercicio'];
$serie->numfactura = intval($_POST['numfactura']);
}
}
if ($serie->save()) {
$this->new_message("Serie " . $serie->codserie . " guardada correctamente");
} else {
$this->new_error_msg("¡Imposible guardar la serie!");
}
} else {
if (isset($_GET['delete'])) {
if (!$this->user->admin) {
$this->new_error_msg('Sólo un administrador puede eliminar series.');
} else {
$serie = $this->serie->get($_GET['delete']);
if ($serie) {
if ($serie->delete()) {
$this->new_message('Serie eliminada correctamente.');
} else {
$this->new_error_msg("¡Imposible eliminar la serie!");
}
} else {
$this->new_error_msg("Serie no encontrada.");
}
}
}
}
}
示例2: private_core
protected function private_core()
{
/// ¿El usuario tiene permiso para eliminar en esta página?
$this->allow_delete = $this->user->allow_delete_on(__CLASS__);
$eje = new ejercicio();
$this->ejercicios = $eje->all();
$this->serie = new serie();
$fsvar = new fs_var();
if (isset($_GET['num_personalizada'])) {
if ($_GET['num_personalizada'] == 'TRUE') {
$this->num_personalizada = TRUE;
$fsvar->simple_save('numeracion_personalizada', $this->num_personalizada);
} else {
$this->num_personalizada = FALSE;
$fsvar->simple_delete('numeracion_personalizada');
}
} else {
$this->num_personalizada = $fsvar->simple_get('numeracion_personalizada');
}
if (isset($_POST['codserie'])) {
$this->modificar_serie();
} else {
if (isset($_GET['delete'])) {
if (!$this->user->admin) {
$this->new_error_msg('Sólo un administrador puede eliminar ' . FS_SERIES . '.');
} else {
$serie = $this->serie->get($_GET['delete']);
if ($serie) {
if ($serie->delete()) {
$this->new_message('Datos eliminados correctamente: ' . FS_SERIE . ' ' . $_GET['delete'], TRUE);
} else {
$this->new_error_msg("¡Imposible eliminar " . FS_SERIE . ' ' . $_GET['delete'] . "!");
}
} else {
$this->new_error_msg('Datos no encontrados: ' . FS_SERIE . ' ' . $_GET['delete']);
}
}
}
}
}
示例3: nuevo_asiento_pago
private function nuevo_asiento_pago($importe, $coddivisa, $tasaconv)
{
$asiento = new asiento();
$asiento->concepto = 'Pago facturas de ' . $this->proveedor->nombre;
$asiento->editable = FALSE;
$asiento->importe = $importe;
$eje0 = new ejercicio();
$ejercicio = $eje0->get_by_fecha($this->today());
if ($ejercicio) {
$asiento->codejercicio = $ejercicio->codejercicio;
}
$subcuenta_pro = $this->proveedor->get_subcuenta($ejercicio->codejercicio);
$subc0 = new subcuenta();
$subcaja = $subc0->get_cuentaesp('CAJA', $ejercicio->codejercicio);
if (!$ejercicio) {
$this->new_error_msg('Ningún ejercico encontrado.');
} else {
if (!$ejercicio->abierto()) {
$this->new_error_msg('El ejercicio ' . $ejercicio->codejercicio . ' está cerrado.');
} else {
if (!$subcuenta_pro) {
$this->new_message("No se ha podido generar una subcuenta para el proveedor " . "<a href='" . $ejercicio->url() . "'>¿Has importado los datos del ejercicio?</a>");
} else {
if (!$subcaja) {
$this->new_message("No se ha encontrado la subcuenta de caja " . "<a href='" . $ejercicio->url() . "'>¿Has importado los datos del ejercicio?</a>");
} else {
if ($asiento->save()) {
$partida1 = new partida();
$partida1->idasiento = $asiento->idasiento;
$partida1->concepto = $asiento->concepto;
$partida1->idsubcuenta = $subcuenta_pro->idsubcuenta;
$partida1->codsubcuenta = $subcuenta_pro->codsubcuenta;
$partida1->debe = $importe;
$partida1->coddivisa = $coddivisa;
$partida1->tasaconv = $tasaconv;
$partida1->codserie = $this->codserie;
$partida1->save();
$partida2 = new partida();
$partida2->idasiento = $asiento->idasiento;
$partida2->concepto = $asiento->concepto;
$partida2->idsubcuenta = $subcaja->idsubcuenta;
$partida2->codsubcuenta = $subcaja->codsubcuenta;
$partida2->haber = $importe;
$partida2->coddivisa = $coddivisa;
$partida2->tasaconv = $tasaconv;
$partida2->codserie = $this->codserie;
$partida2->save();
$this->new_message('<a href="' . $asiento->url() . '">Asiento de pago</a> generado.');
} else {
$this->new_error_msg('Error al guardar el asiento.');
}
}
}
}
}
return $asiento;
}
示例4: cron_job
public function cron_job()
{
/*
* Marcamos como ptefactura = FALSE todos los albaranes de ejercicios
* ya cerrados. Así no se podrán modificar ni facturar.
*/
$ejercicio = new ejercicio();
foreach ($ejercicio->all() as $eje) {
if (!$eje->abierto()) {
$this->db->exec("UPDATE " . $this->table_name . " SET ptefactura = FALSE\n WHERE codejercicio = " . $this->var2str($eje->codejercicio) . ";");
}
}
}
示例5: new_subcuenta
public function new_subcuenta($suma_codigo)
{
$ejercicio = new ejercicio();
$eje0 = $ejercicio->get($this->codejercicio);
if ($eje0) {
$codsubcuenta = floatval(sprintf('%-0' . $eje0->longsubcuenta . 's', $this->codcuenta)) + $suma_codigo;
$subcuenta = new subcuenta();
$subc0 = $subcuenta->get_by_codigo($codsubcuenta, $this->codejercicio);
if ($subc0) {
return $subc0;
} else {
$subc0 = new subcuenta();
$subc0->codcuenta = $this->codcuenta;
$subc0->idcuenta = $this->idcuenta;
$subc0->codejercicio = $this->codejercicio;
$subc0->codsubcuenta = $codsubcuenta;
return $subc0;
}
} else {
return FALSE;
}
}
示例6: renumerar
public function renumerar()
{
$ejercicio = new ejercicio();
foreach ($ejercicio->all_abiertos() as $eje) {
$posicion = 0;
$numero = 1;
$sql = '';
$continuar = TRUE;
$consulta = "SELECT idasiento,numero,fecha FROM " . $this->table_name . " WHERE codejercicio = '" . $eje->codejercicio . "'\n ORDER BY codejercicio ASC, fecha ASC, idasiento ASC";
$asientos = $this->db->select_limit($consulta, 1000, $posicion);
while ($asientos and $continuar) {
foreach ($asientos as $col) {
if ($col['numero'] != $numero) {
$sql .= "UPDATE " . $this->table_name . " SET numero = '" . $numero . "' WHERE idasiento = '" . $col['idasiento'] . "'; ";
}
$numero++;
}
$posicion += 1000;
if ($sql != '') {
if (!$this->db->exec($sql)) {
$this->new_error_msg("Se ha producido un error mientras se\n renumeraban los asientos del ejercicio " . $eje->codejercicio);
$continuar = FALSE;
}
$sql = '';
}
$asientos = $this->db->select_limit($consulta, 1000, $posicion);
}
}
return $continuar;
}
示例7: nuevo_albaran_cliente
private function nuevo_albaran_cliente($p)
{
// print_r($p);
$continuar = TRUE;
$respuesta = "";
$cliente = $this->cliente->get($p['cliente']);
if (!$cliente) {
$respuesta .= 'Cliente no encontrado.';
$continuar = FALSE;
}
$almacen = $this->almacen->get($p['almacen']);
if ($almacen) {
} else {
$respuesta .= 'Almacén no encontrado.';
$continuar = FALSE;
}
$eje0 = new ejercicio();
$ejercicio = $eje0->get_by_fecha($p['fecha'], FALSE);
if (!$ejercicio) {
$respuesta .= 'Ejercicio no encontrado.';
$continuar = FALSE;
}
$serie = $this->serie->get($p['serie']);
if (!$serie) {
$respuesta .= 'Serie no encontrada.';
$continuar = FALSE;
}
$forma_pago = $this->forma_pago->get($p['forma_pago']);
if ($forma_pago) {
} else {
$respuesta .= 'Forma de pago no encontrada.';
$continuar = FALSE;
}
$divisa = $this->divisa->get($p['divisa']);
if (!$divisa) {
$respuesta .= 'Divisa no encontrada.';
$continuar = FALSE;
}
$albaran = new albaran_cliente();
if ($continuar) {
$albaran->fecha = $p['fecha'];
$albaran->hora = $p['hora'];
$albaran->codalmacen = $almacen->codalmacen;
$albaran->codejercicio = $ejercicio->codejercicio;
$albaran->codserie = $serie->codserie;
$albaran->codpago = $forma_pago->codpago;
$albaran->coddivisa = $divisa->coddivisa;
$albaran->tasaconv = $divisa->tasaconv;
$albaran->codagente = $this->agente->codagente;
$albaran->numero2 = $p['numero2'];
$albaran->observaciones = $p['observaciones'];
$albaran->porcomision = $this->agente->porcomision;
$albaran->codcliente = $cliente->codcliente;
$albaran->cifnif = $cliente->cifnif;
$albaran->nombrecliente = $cliente->nombre;
$direccion = array();
foreach ($cliente->get_direcciones() as $dir) {
if ($dir->domfacturacion) {
$direccion = $dir;
break;
}
}
$albaran->ciudad = $direccion->ciudad;
$albaran->codpais = $direccion->codpais;
$albaran->codpostal = $direccion->codpostal;
$albaran->direccion = $direccion->direccion;
$albaran->provincia = $direccion->provincia;
if ($albaran->save()) {
$art0 = new articulo();
$n = floatval($p['numlineas']);
for ($i = 0; $i <= $n; $i++) {
if (isset($p['referencia_' . $i])) {
$linea = new linea_albaran_cliente();
$linea->idalbaran = $albaran->idalbaran;
$linea->descripcion = $p['desc_' . $i];
if (!$serie->siniva and $cliente->regimeniva != 'Exento') {
$imp0 = $this->impuesto->get_by_iva($p['iva_' . $i]);
if ($imp0) {
$linea->codimpuesto = $imp0->codimpuesto;
$linea->iva = floatval($p['iva_' . $i]);
$linea->recargo = floatval($p['recargo_' . $i]);
} else {
$linea->iva = floatval($p['iva_' . $i]);
$linea->recargo = floatval($p['recargo_' . $i]);
}
}
$linea->irpf = floatval($p['irpf_' . $i]);
$linea->pvpunitario = floatval($p['pvp_' . $i]);
$linea->cantidad = floatval($p['cantidad_' . $i]);
$linea->dtopor = floatval($p['dto_' . $i]);
$linea->pvpsindto = $linea->pvpunitario * $linea->cantidad;
$linea->pvptotal = floatval($p['neto_' . $i]);
$articulo = $art0->get($p['referencia_' . $i]);
if ($articulo) {
$linea->referencia = $articulo->referencia;
}
if ($linea->save()) {
if ($articulo and isset($p['stock'])) {
/// descontamos del stock
$articulo->sum_stock($albaran->codalmacen, 0 - $linea->cantidad);
//.........这里部分代码省略.........
示例8: get_ejercicio
public function get_ejercicio()
{
$eje = new \ejercicio();
return $eje->get($this->codejercicio);
}
示例9: generar_sit
/**
* Genera el balance de situación.
* @param type $codeje
*/
public function generar_sit($codeje)
{
$ejercicio = new ejercicio();
$eje0 = $ejercicio->get($codeje);
if ($eje0) {
$pdf_doc = new fs_pdf();
$pdf_doc->pdf->addInfo('Title', 'Balance de pérdidas y ganancias de ' . $this->empresa->nombre);
$pdf_doc->pdf->addInfo('Subject', 'Balance de pérdidas y ganancias de ' . $this->empresa->nombre);
$pdf_doc->pdf->addInfo('Author', $this->empresa->nombre);
$pdf_doc->pdf->ezStartPageNumbers(580, 10, 10, 'left', '{PAGENUM} de {TOTALPAGENUM}');
$this->situacion($pdf_doc, $eje0, FALSE);
$pdf_doc->show();
}
}
示例10: buscar_subcuenta
private function buscar_subcuenta()
{
/// desactivamos la plantilla HTML
$this->template = FALSE;
$subcuenta = new subcuenta();
$eje0 = new ejercicio();
$ejercicio = $eje0->get($_REQUEST['codejercicio']);
$json = array();
foreach ($subcuenta->search_by_ejercicio($ejercicio->codejercicio, $_REQUEST['buscar_subcuenta']) as $subc) {
$json[] = array('value' => $subc->codsubcuenta, 'data' => $subc->descripcion, 'saldo' => $subc->saldo, 'link' => $subc->url());
}
header('Content-Type: application/json');
echo json_encode(array('query' => $_REQUEST['buscar_subcuenta'], 'suggestions' => $json));
}
示例11: importar_sat
private function importar_sat()
{
$this->registro_sat = new registro_sat();
$this->detalle_sat = new detalle_sat();
$this->cliente = new cliente();
$importados = 0;
$importados_det = 0;
$data = $this->db->select("SELECT * FROM registros_sat;");
if ($data) {
foreach ($data as $d) {
$this->servicio = $this->registro_sat->get($d['nsat']);
if ($this->servicio) {
$this->servicio = new servicio_cliente();
$this->servicio->numero2 = "SAT_" . $d['nsat'];
$this->servicio->fecha = $d['fentrada'];
if (isset($d['fcomienzo'])) {
$this->servicio->fechainicio = Date('d-m-Y H:i', strtotime($d['fcomienzo']));
}
if (isset($d['ffin'])) {
$this->servicio->fechafin = Date('d-m-Y H:i', strtotime($d['ffin']));
}
//obtenemos ejercicio
$eje0 = new ejercicio();
$ejercicio = $eje0->get_by_fecha($d['fentrada']);
$this->servicio->codejercicio = $ejercicio->codejercicio;
$this->servicio->material = $d['modelo'];
$this->servicio->descripcion = $d['averia'];
$this->servicio->accesorios = $d['accesorios'];
$this->servicio->codcliente = $d['codcliente'];
$this->servicio->observaciones = $d['observaciones'];
$this->servicio->codagente = $d['codagente'];
$this->servicio->idestado = '1';
$this->servicio->prioridad = $d['prioridad'];
//obtenemos cliente
$cliente0 = new cliente();
$cliente = $cliente0->get($d['codcliente']);
$this->servicio->nombrecliente = $cliente->nombre;
$this->servicio->codserie = $this->empresa->codserie;
$this->servicio->codpago = $this->empresa->codpago;
if ($this->servicio->save()) {
$importados++;
}
//Importamos Detalles:
$data2 = $this->db->select("SELECT * FROM detalles_sat WHERE nsat=" . $d['nsat'] . ";");
if ($data2) {
foreach ($data2 as $d2) {
$detalle = $this->detalle_sat->get($d2['id']);
if ($detalle) {
$detalle = new detalle_servicio();
$detalle->idservicio = $this->servicio->idservicio;
$detalle->descripcion = $d2['descripcion'];
$detalle->fecha = $d2['fecha'];
if ($detalle->save()) {
$importados_det++;
}
}
}
}
}
}
}
$this->new_message($importados . ' registros SAT importados.');
$this->new_message($importados_det . ' detalles SAT importados.');
$this->avisosat = '2';
}
示例12: nuevo_asiento_pago
/**
*
* @param recibo_cliente $recibo
* @param pago_recibo_cliente $pago
* @param ejercicio $ejercicio
* @param subcuenta $subcli
* @return type
*/
private function nuevo_asiento_pago(&$recibo, &$pago, &$ejercicio, &$subcli)
{
$asiento = new asiento();
$asiento->fecha = $pago->fecha;
$asiento->codejercicio = $ejercicio->codejercicio;
$asiento->editable = FALSE;
$asiento->importe = $recibo->importe;
if ($pago->tipo == 'Pago') {
$asiento->concepto = 'Cobro recibo ' . $recibo->codigo . ' - ' . $recibo->nombrecliente;
} else {
$asiento->concepto = $pago->tipo . ' recibo ' . $recibo->codigo . ' - ' . $recibo->nombrecliente;
}
if (!$ejercicio->abierto()) {
$this->new_error_msg('El ejercicio ' . $ejercicio->codejercicio . ' está cerrado.');
} else {
if ($asiento->save()) {
$partida1 = new partida();
$partida1->idasiento = $asiento->idasiento;
$partida1->concepto = $asiento->concepto;
$partida1->idsubcuenta = $subcli->idsubcuenta;
$partida1->codsubcuenta = $subcli->codsubcuenta;
$partida1->haber = $recibo->importe;
$partida1->coddivisa = $recibo->coddivisa;
$partida1->tasaconv = $recibo->tasaconv;
$partida1->codserie = $recibo->codserie;
$partida1->save();
$partida2 = new partida();
$partida2->idasiento = $asiento->idasiento;
$partida2->concepto = $asiento->concepto;
$partida2->idsubcuenta = $pago->idsubcuenta;
$partida2->codsubcuenta = $pago->codsubcuenta;
$partida2->debe = $recibo->importe;
$partida2->coddivisa = $recibo->coddivisa;
$partida2->tasaconv = $recibo->tasaconv;
$partida2->codserie = $recibo->codserie;
$partida2->save();
} else {
$this->new_error_msg('Error al guardar el asiento.');
}
}
return $asiento->idasiento;
}
示例13: generar_recibos_pagos
private function generar_recibos_pagos()
{
/**
* añadimos el idfactura a todos los pagos generados durante la etapa de albarán
*/
$idalbaran = NULL;
foreach ($this->factura->get_lineas() as $lin) {
if ($lin->idalbaran != $idalbaran) {
$idalbaran = $lin->idalbaran;
$this->db->exec("UPDATE pagos SET idfactura = " . $this->factura->var2str($this->factura->idfactura) . " WHERE idalbaran = " . $this->factura->var2str($idalbaran) . ";");
}
}
$cli = new cliente();
$cliente = $cli->get($this->factura->codcliente);
if ($cliente) {
$eje0 = new ejercicio();
$ejercicio = $eje0->get_by_fecha(date('d-m-Y'));
$subcuenta = FALSE;
$subcuenta_caja = FALSE;
foreach ($cliente->get_subcuentas() as $sc) {
$subcuenta = $sc;
$subcuenta_caja = $sc->get_cuentaesp('CAJA', $ejercicio->codejercicio);
break;
}
$pago0 = new pago();
foreach ($pago0->all_from_factura($this->factura->idfactura) as $pago) {
if (is_null($pago->idrecibo)) {
$this->generar_recibo_pago($pago, $ejercicio, $subcuenta, $subcuenta_caja);
}
}
}
}
示例14: nueva_factura_proveedor
private function nueva_factura_proveedor()
{
$continuar = TRUE;
$proveedor = $this->proveedor->get($_POST['proveedor']);
if ($proveedor) {
$this->save_codproveedor($proveedor->codproveedor);
} else {
$this->new_error_msg('Proveedor no encontrado.');
$continuar = FALSE;
}
if (isset($_POST['almacen'])) {
$almacen = $this->almacen->get($_POST['almacen']);
if ($almacen) {
$this->save_codalmacen($almacen->codalmacen);
} else {
$this->new_error_msg('Almacén no encontrado.');
$continuar = FALSE;
}
}
$factura = new factura_proveedor();
$eje0 = new ejercicio();
$ejercicio = $eje0->get_by_fecha($_POST['fecha']);
if ($ejercicio) {
$this->save_codejercicio($ejercicio->codejercicio);
} else {
$this->autorizar_factura = 1;
// $this->new_error_msg('Ejercicio no encontrado.1');
header('Location: ' . $factura->url_list() . '&nueva=2');
$continuar = FALSE;
}
$serie = $this->serie->get($_POST['serie']);
if (!$serie) {
$this->new_error_msg('Serie no encontrada.');
$continuar = FALSE;
}
$forma_pago = $this->forma_pago->get($_POST['forma_pago']);
if ($forma_pago) {
$this->save_codpago($forma_pago->codpago);
} else {
$this->new_error_msg('Forma de pago no encontrada.');
$continuar = FALSE;
}
$divisa = $this->divisa->get($_POST['divisa']);
if ($divisa) {
$this->save_coddivisa($divisa->coddivisa);
} else {
$this->new_error_msg('Divisa no encontrada.');
$continuar = FALSE;
}
if ($this->duplicated_petition($_POST['petition_id'])) {
$this->new_error_msg('Petición duplicada. Has hecho doble clic sobre el botón guardar
y se han enviado dos peticiones. Mira en <a href="' . $factura->url() . '">Facturas</a>
para ver si la factura se ha guardado correctamente.');
$continuar = FALSE;
}
$a = strlen(substr($_POST['fecha'], 6));
if ($a != 4) {
$continuar = FALSE;
}
if ($continuar) {
$factura->fecha = $_POST['fecha'];
$fecha_factura = $_POST['fecha'];
$factura->hora = $_POST['hora'];
$factura->codproveedor = $proveedor->codproveedor;
$factura->nombre = $proveedor->razonsocial;
$factura->idpagodevol = 0;
$factura->cifnif = $proveedor->cifnif;
$factura->codalmacen = $almacen->codalmacen;
$factura->codejercicio = $ejercicio->codejercicio;
$factura->codserie = $serie->codserie;
$factura->codpago = $forma_pago->codpago;
$factura->coddivisa = $divisa->coddivisa;
$factura->tasaconv = $divisa->tasaconv_compra;
$factura->tipo = $_POST['tipo'];
$factura->cai = $_POST['cai'];
$factura->caivence = $_POST['caivence'];
if ($_POST['tasaconv'] != '') {
$factura->tasaconv = floatval($_POST['tasaconv']);
}
$factura->codagente = $this->agente->codagente;
$factura->numproveedor = $_POST['tipo'] . '/' . $_POST['numproveedor'];
$factura->observaciones = $_POST['observaciones'];
$factura->irpf = $serie->irpf;
if ($forma_pago->genrecibos == 'Pagados') {
// $factura->pagada = TRUE;
}
if ($factura->save()) {
$art0 = new articulo();
$inventario = new inventario();
$n = floatval($_POST['numlineas']);
for ($i = 0; $i < $n; $i++) {
if (isset($_POST['referencia_' . $i])) {
$linea = new linea_factura_proveedor();
$linea->idfactura = $factura->idfactura;
$this->id_factura = $factura->idfactura;
$linea->descripcion = $_POST['desc_' . $i];
$linea->irpf = floatval($_POST['irpf_' . $i]);
$linea->pvpunitario = floatval($_POST['pvp_' . $i]);
$linea->cantidad = floatval($_POST['cantidad_' . $i]);
$linea->dtopor = floatval($_POST['dto_' . $i]);
//.........这里部分代码省略.........
示例15: nueva_factura_cliente
private function nueva_factura_cliente()
{
$continuar = TRUE;
$cliente = $this->cliente->get($_POST['cliente']);
if ($cliente) {
$this->save_codcliente($cliente->codcliente);
} else {
$this->new_error_msg('Cliente no encontrado.');
$continuar = FALSE;
}
$almacen = $this->almacen->get($_POST['almacen']);
if ($almacen) {
$this->save_codalmacen($almacen->codalmacen);
} else {
$this->new_error_msg('Almacén no encontrado.');
$continuar = FALSE;
}
$eje0 = new ejercicio();
$ejercicio = $eje0->get_by_fecha($_POST['fecha']);
if ($ejercicio) {
$this->save_codejercicio($ejercicio->codejercicio);
} else {
$this->new_error_msg('Ejercicio no encontrado.');
$continuar = FALSE;
}
$serie = $this->serie->get($_POST['serie']);
if (!$serie) {
$this->new_error_msg('Serie no encontrada.');
$continuar = FALSE;
}
$forma_pago = $this->forma_pago->get($_POST['forma_pago']);
if ($forma_pago) {
$this->save_codpago($forma_pago->codpago);
} else {
$this->new_error_msg('Forma de pago no encontrada.');
$continuar = FALSE;
}
$divisa = $this->divisa->get($_POST['divisa']);
if ($divisa) {
$this->save_coddivisa($divisa->coddivisa);
} else {
$this->new_error_msg('Divisa no encontrada.');
$continuar = FALSE;
}
$factura = new factura_cliente();
if ($this->duplicated_petition($_POST['petition_id'])) {
$this->new_error_msg('Petición duplicada. Has hecho doble clic sobre el botón guardar
y se han enviado dos peticiones. Mira en <a href="' . $factura->url() . '">Facturas</a>
para ver si la factura se ha guardado correctamente.');
$continuar = FALSE;
}
if ($continuar) {
$factura->fecha = $_POST['fecha'];
$factura->hora = $_POST['hora'];
$factura->codalmacen = $almacen->codalmacen;
$factura->codejercicio = $ejercicio->codejercicio;
$factura->codserie = $serie->codserie;
$factura->codpago = $forma_pago->codpago;
$factura->coddivisa = $divisa->coddivisa;
$factura->tasaconv = $divisa->tasaconv;
$factura->codagente = $this->agente->codagente;
$factura->observaciones = $_POST['observaciones'];
$factura->numero2 = $_POST['numero2'];
$factura->irpf = $serie->irpf;
$factura->porcomision = $this->agente->porcomision;
if ($forma_pago->genrecibos == 'Pagados') {
$factura->pagada = TRUE;
}
foreach ($cliente->get_direcciones() as $d) {
if ($d->domfacturacion) {
$factura->codcliente = $cliente->codcliente;
$factura->cifnif = $cliente->cifnif;
$factura->nombrecliente = $cliente->nombrecomercial;
$factura->apartado = $d->apartado;
$factura->ciudad = $d->ciudad;
$factura->coddir = $d->id;
$factura->codpais = $d->codpais;
$factura->codpostal = $d->codpostal;
$factura->direccion = $d->direccion;
$factura->provincia = $d->provincia;
break;
}
}
if (is_null($factura->codcliente)) {
$this->new_error_msg("No hay ninguna dirección asociada al cliente.");
} else {
if ($factura->save()) {
$art0 = new articulo();
$n = floatval($_POST['numlineas']);
for ($i = 0; $i <= $n; $i++) {
if (isset($_POST['referencia_' . $i])) {
$articulo = $art0->get($_POST['referencia_' . $i]);
if ($articulo) {
$linea = new linea_factura_cliente();
$linea->idfactura = $factura->idfactura;
$linea->referencia = $articulo->referencia;
$linea->descripcion = $_POST['desc_' . $i];
$linea->irpf = $factura->irpf;
if (!$serie->siniva and $cliente->regimeniva != 'Exento') {
$imp0 = $this->impuesto->get_by_iva($_POST['iva_' . $i]);
//.........这里部分代码省略.........