protected function private_core() { $this->desde = Date('01-m-Y'); if (isset($_POST['desde'])) { $this->desde = $_POST['desde']; } $this->hasta = Date('d-m-Y'); if (isset($_POST['hasta'])) { $this->hasta = $_POST['hasta']; } $this->codproveedor = FALSE; if (isset($_POST['codproveedor'])) { $this->codproveedor = $_POST['codproveedor']; $pro0 = new proveedor(); $this->proveedor = $pro0->get($this->codproveedor); } $this->serie = new serie(); $this->codserie = FALSE; if (isset($_POST['codserie'])) { $this->codserie = $_POST['codserie']; } if (isset($_REQUEST['buscar_proveedor'])) { $this->buscar_proveedor(); } else { if (isset($_POST['idfactura'])) { $this->pagar_facturas(); } else { $this->share_extensions(); } } $this->resultados = FALSE; if (isset($_POST['desde'])) { $this->resultados = $this->buscar_facturas(); } }
protected function private_core() { $this->share_extension(); $this->proveedor = FALSE; $this->desde = Date('01-01-Y'); $this->hasta = Date('t-m-Y'); $this->resultados = FALSE; $this->serie = new serie(); if (isset($_REQUEST['buscar_proveedor'])) { $this->buscar_proveedor(); } else { if (isset($_REQUEST['codproveedor'])) { $prov0 = new proveedor(); $this->proveedor = $prov0->get($_REQUEST['codproveedor']); if (isset($_REQUEST['codserie'])) { $this->codserie = $_REQUEST['codserie']; } if (isset($_REQUEST['desde'])) { $this->desde = $_REQUEST['desde']; } if (isset($_REQUEST['hasta'])) { $this->hasta = $_REQUEST['hasta']; } if ($this->proveedor) { $this->resultados = $this->buscar_pedidos(); if (isset($_POST['cantidad_0'])) { $this->agrupar_pedidos(); $this->resultados = FALSE; } } } } }
protected function process() { $this->albaran = FALSE; $this->articulo_proveedor = new articulo_proveedor(); $this->proveedor = FALSE; $this->factura = FALSE; $this->impuesto = new impuesto(); if (isset($_REQUEST['albaran']) and isset($_REQUEST['id'])) { $alb = new albaran_proveedor(); $this->albaran = $alb->get($_REQUEST['id']); if ($this->albaran) { $proveedor = new proveedor(); $this->proveedor = $proveedor->get($this->albaran->codproveedor); } if (isset($_POST['email'])) { $this->enviar_email('albaran'); } else { $this->generar_pdf_albaran(); } } else { if (isset($_REQUEST['factura']) and isset($_REQUEST['id'])) { $fac = new factura_proveedor(); $this->factura = $fac->get($_REQUEST['id']); if ($this->factura) { $proveedor = new proveedor(); $this->proveedor = $proveedor->get($this->factura->codproveedor); } $this->generar_pdf_factura(); } } $this->share_extensions(); }
function getNombreProveedor($idProv) { $oProv = new proveedor(); if (!$oProv->Load($idProv)) { return "???"; } return $oProv->get("NombreComercial"); }
protected function process() { $this->factura = new factura_proveedor(); /// desactivamos la barra de botones $this->show_fs_toolbar = FALSE; $this->offset = 0; if (isset($_GET['offset'])) { $this->offset = intval($_GET['offset']); } if (isset($_POST['buscar_lineas'])) { $this->buscar_lineas(); } else { if (isset($_GET['codagente'])) { $this->template = 'extension/compras_facturas_agente'; $agente = new agente(); $this->agente = $agente->get($_GET['codagente']); $this->resultados = $this->factura->all_from_agente($_GET['codagente'], $this->offset); } else { if (isset($_GET['codproveedor'])) { $this->template = 'extension/compras_facturas_proveedor'; $proveedor = new proveedor(); $this->proveedor = $proveedor->get($_GET['codproveedor']); $this->resultados = $this->factura->all_from_proveedor($_GET['codproveedor'], $this->offset); } else { if (isset($_GET['ref'])) { $this->template = 'extension/compras_facturas_articulo'; $articulo = new articulo(); $this->articulo = $articulo->get($_GET['ref']); $linea = new linea_factura_proveedor(); $this->resultados = $linea->all_from_articulo($_GET['ref'], $this->offset); } else { $this->share_extension(); if (isset($_GET['delete'])) { $fact = $this->factura->get($_GET['delete']); if ($fact) { if ($fact->delete()) { $this->new_message("Factura eliminada correctamente."); } else { $this->new_error_msg("¡Imposible eliminar la factura!"); } } else { $this->new_error_msg("Factura no encontrada."); } } if ($this->query != '') { $this->resultados = $this->factura->search($this->query, $this->offset); } else { if (isset($_GET['sinpagar'])) { $this->resultados = $this->factura->all_sin_pagar($this->offset); } else { $this->resultados = $this->factura->all($this->offset); } } } } } } }
protected function private_core() { $this->articulo_proveedor = new articulo_proveedor(); $this->cliente = FALSE; $this->impuesto = new impuesto(); $this->pedido = FALSE; $this->presupuesto = FALSE; $this->proveedor = FALSE; /// obtenemos los datos de configuración de impresión $this->impresion = array('print_ref' => '1', 'print_dto' => '1', 'print_alb' => '0'); $fsvar = new fs_var(); $this->impresion = $fsvar->array_get($this->impresion, FALSE); if (isset($_REQUEST['pedido_p']) and isset($_REQUEST['id'])) { $ped = new pedido_proveedor(); $this->pedido = $ped->get($_REQUEST['id']); if ($this->pedido) { $proveedor = new proveedor(); $this->proveedor = $proveedor->get($this->pedido->codproveedor); } if (isset($_POST['email'])) { $this->enviar_email_proveedor('pedio'); } else { $this->generar_pdf_pedido_proveedor(); } } else { if (isset($_REQUEST['pedido']) and isset($_REQUEST['id'])) { $ped = new pedido_cliente(); $this->pedido = $ped->get($_REQUEST['id']); if ($this->pedido) { $cliente = new cliente(); $this->cliente = $cliente->get($this->pedido->codcliente); } if (isset($_POST['email'])) { $this->enviar_email('pedio'); } else { $this->generar_pdf_pedido(); } } else { if (isset($_REQUEST['presupuesto']) and isset($_REQUEST['id'])) { $pres = new presupuesto_cliente(); $this->presupuesto = $pres->get($_REQUEST['id']); if ($this->presupuesto) { $cliente = new cliente(); $this->cliente = $cliente->get($this->presupuesto->codcliente); } if (isset($_POST['email'])) { $this->enviar_email('presupuesto'); } else { $this->generar_pdf_presupuesto(); } } } } $this->share_extensions(); }
protected function process() { $this->albaran = FALSE; $this->articulo_proveedor = new articulo_proveedor(); $this->proveedor = FALSE; $this->factura = FALSE; $this->impuesto = new impuesto(); $this->fecha_hoy = Date('d-m-Y'); if (isset($_REQUEST['albaran']) and isset($_REQUEST['id'])) { $alb = new albaran_proveedor(); $this->albaran = $alb->get($_REQUEST['id']); if ($this->albaran) { $proveedor = new proveedor(); $this->proveedor = $proveedor->get($this->albaran->codproveedor); } if (isset($_POST['email'])) { $this->enviar_email('albaran'); } else { $this->generar_pdf_albaran(); } } else { if (isset($_REQUEST['factura']) and isset($_REQUEST['id'])) { $fac = new factura_proveedor(); $this->factura = $fac->get($_REQUEST['id']); if ($this->factura) { $proveedor = new proveedor(); $this->proveedor = $proveedor->get($this->factura->codproveedor); } $this->generar_pdf_factura(); } else { if (isset($_REQUEST['ordenes'])) { if ($_GET['forma'] == '1') { $desde = $_GET['desde']; $hasta = $_GET['hasta']; $proveedor = $_GET['proveedor']; $codproveedor = $_GET['codproveedor']; $this->imprimir_ordenes($desde, $hasta, $proveedor, $codproveedor); } else { if (isset($_GET['forma']) == 2) { $idorden = $_GET['idorden']; $this->imprimir_ordenes_indiv($idorden); } } } else { if (isset($_REQUEST['anticipos'])) { $idanticipo = $_GET['idanticipo']; $this->imprimir_anticipo($idanticipo); } } } } $this->share_extensions(); }
protected function private_core() { $this->albaran = new albaran_proveedor(); $this->codserie = $this->empresa->codserie; $this->ejercicio = new ejercicio(); $this->forma_pago = new forma_pago(); $this->proveedor = FALSE; $this->serie = new serie(); $this->neto = 0; $this->total = 0; $this->desde = Date('01-01-Y'); $this->hasta = Date('t-m-Y'); if (isset($_REQUEST['buscar_proveedor'])) { $this->buscar_proveedor(); } else { if (isset($_POST['idalbaran'])) { $this->proveedor = new proveedor(); $this->agrupar(); } else { if (isset($_REQUEST['codproveedor'])) { $pr0 = new proveedor(); $this->proveedor = $pr0->get($_REQUEST['codproveedor']); if (isset($_REQUEST['codserie'])) { $this->codserie = $_REQUEST['codserie']; } if (isset($_REQUEST['desde'])) { $this->desde = $_REQUEST['desde']; } if (isset($_REQUEST['hasta'])) { $this->hasta = $_REQUEST['hasta']; } /// el desde no puede ser mayor que el hasta if (strtotime($this->desde) > strtotime($this->hasta)) { $this->hasta = $this->desde; } if ($this->proveedor) { $this->resultados = $this->albaran->search_from_proveedor($this->proveedor->codproveedor, $this->desde, $this->hasta, $this->codserie); if ($this->resultados) { foreach ($this->resultados as $alb) { $this->neto += $alb->neto; $this->total += $alb->total; } } } } else { $this->share_extensions(); } } } }
protected function process() { $albaran = new albaran_proveedor(); /// desactivamos la barra de botones $this->show_fs_toolbar = FALSE; $this->offset = 0; if (isset($_GET['offset'])) { $this->offset = intval($_GET['offset']); } if (isset($_POST['buscar_lineas'])) { $this->buscar_lineas(); } else { if (isset($_GET['codagente'])) { $this->template = 'extension/compras_albaranes_agente'; $agente = new agente(); $this->agente = $agente->get($_GET['codagente']); $this->resultados = $albaran->all_from_agente($_GET['codagente'], $this->offset); } else { if (isset($_GET['codproveedor'])) { $this->template = 'extension/compras_albaranes_proveedor'; $proveedor = new proveedor(); $this->proveedor = $proveedor->get($_GET['codproveedor']); $this->resultados = $albaran->all_from_proveedor($_GET['codproveedor'], $this->offset); } else { if (isset($_GET['ref'])) { $this->template = 'extension/compras_albaranes_articulo'; $articulo = new articulo(); $this->articulo = $articulo->get($_GET['ref']); $linea = new linea_albaran_proveedor(); $this->resultados = $linea->all_from_articulo($_GET['ref'], $this->offset); } else { $this->share_extension(); if (isset($_POST['delete'])) { $this->delete_albaran(); } if ($this->query != '') { $this->resultados = $albaran->search($this->query, $this->offset); } else { if (isset($_GET['ptefactura'])) { $this->resultados = $albaran->all_ptefactura($this->offset); } else { $this->resultados = $albaran->all($this->offset); } } } } } } }
protected function private_core() { $pedido = new pedido_proveedor(); $this->offset = 0; if (isset($_GET['offset'])) { $this->offset = intval($_GET['offset']); } if (isset($_POST['buscar_lineas'])) { $this->buscar_lineas(); } else { if (isset($_GET['codagente'])) { $this->template = 'extension/compras_pedidos_agente'; $agente = new agente(); $this->agente = $agente->get($_GET['codagente']); $this->resultados = $pedido->all_from_agente($_GET['codagente'], $this->offset); } else { if (isset($_GET['codproveedor'])) { $this->template = 'extension/compras_pedidos_proveedor'; $proveedor = new proveedor(); $this->proveedor = $proveedor->get($_GET['codproveedor']); $this->resultados = $pedido->all_from_proveedor($_GET['codproveedor'], $this->offset); } else { if (isset($_GET['ref'])) { $this->template = 'extension/compras_pedidos_articulo'; $articulo = new articulo(); $this->articulo = $articulo->get($_GET['ref']); $linea = new linea_pedido_proveedor(); $this->resultados = $linea->all_from_articulo($_GET['ref'], $this->offset); } else { $this->share_extension(); if (isset($_POST['delete'])) { $this->delete_pedido(); } if ($this->query) { $this->resultados = $pedido->search($this->query, $this->offset); } else { if (isset($_GET['pendientes'])) { $this->resultados = $pedido->all_ptealbaran($this->offset); } else { /// ejecutamos el proceso del cron para pedidos. $pedido->cron_job(); $this->resultados = $pedido->all($this->offset); } } } } } } }
protected function private_core() { $this->share_extension(); $this->documentos = array(); if (isset($_GET['folder']) and isset($_GET['cod'])) { //Primero cargamos el proveedor o cliente segun sea if ($_GET['folder'] == 'proveedor') { $proveedor = new proveedor(); $this->proveedor = $proveedor->get($_GET['cod']); $this->cod = $_GET['cod']; } else { $cliente = new cliente(); $this->cliente = $cliente->get($_GET['cod']); $this->cod = $_GET['cod']; } //Luego si no existen documentos crea directorios if (!file_exists('tmp/' . FS_TMP_NAME . 'documentos_procli')) { mkdir('tmp/' . FS_TMP_NAME . 'documentos_procli'); } if (!file_exists('tmp/' . FS_TMP_NAME . 'documentos_procli/' . $_GET['folder'])) { mkdir('tmp/' . FS_TMP_NAME . 'documentos_procli/' . $_GET['folder']); } //PAra subir archivos if (isset($_POST['upload'])) { if (is_uploaded_file($_FILES['fdocumento']['tmp_name'])) { if (!file_exists('tmp/' . FS_TMP_NAME . 'documentos_procli/' . $_GET['folder'] . '/' . $this->cod)) { mkdir('tmp/' . FS_TMP_NAME . 'documentos_procli/' . $_GET['folder'] . '/' . $this->cod); } copy($_FILES['fdocumento']['tmp_name'], "tmp/" . FS_TMP_NAME . "documentos_procli/" . $_GET['folder'] . '/' . $this->cod . '/' . $_FILES['fdocumento']['name']); $this->new_message('Documentos añadido correctamente.'); } } else { if (isset($_GET['delete'])) { if (file_exists('tmp/' . FS_TMP_NAME . 'documentos_procli/' . $_GET['folder'] . '/' . $this->cod . '/' . $_GET['delete'])) { if (unlink('tmp/' . FS_TMP_NAME . 'documentos_procli/' . $_GET['folder'] . '/' . $this->cod . '/' . $_GET['delete'])) { $this->new_message('Archivo ' . $_GET['delete'] . ' eliminado correctamente.'); } else { $this->new_error_msg('Error al eliminar el archivo ' . $_GET['delete'] . '.'); } } else { $this->new_error_msg('Archivo no encontrado.'); } } } //Si no finalmente enseñamos todos los documentos para este cliente o proveedor $this->documentos = $this->get_documentos(); } }
protected function private_core() { $this->albaran = new albaran_proveedor(); $this->codserie = NULL; $this->forma_pago = new forma_pago(); $this->proveedor = FALSE; $this->serie = new serie(); $this->neto = 0; $this->total = 0; $this->desde = Date('01-01-Y'); $this->hasta = Date('t-m-Y'); if (isset($_REQUEST['buscar_proveedor'])) { $this->buscar_proveedor(); } else { if (isset($_POST['idalbaran'])) { $this->proveedor = new proveedor(); $this->agrupar(); } else { if (isset($_REQUEST['codproveedor'])) { $pr0 = new proveedor(); $this->proveedor = $pr0->get($_REQUEST['codproveedor']); if (isset($_REQUEST['codserie'])) { $this->codserie = $_REQUEST['codserie']; } if (isset($_REQUEST['desde'])) { $this->desde = $_REQUEST['desde']; } if (isset($_REQUEST['hasta'])) { $this->hasta = $_REQUEST['hasta']; } if ($this->proveedor) { $this->resultados = $this->albaran->search_from_proveedor($this->proveedor->codproveedor, $this->desde, $this->hasta, $this->codserie); if ($this->resultados) { foreach ($this->resultados as $alb) { $this->neto += $alb->neto; $this->total += $alb->total; } } else { $this->new_message("Sin resultados."); } } } else { $this->share_extensions(); } } } }
protected function private_core() { $this->albaran = FALSE; $this->articulo_proveedor = new articulo_proveedor(); $this->proveedor = FALSE; $this->factura = FALSE; $this->impuesto = new impuesto(); /// obtenemos los datos de configuración de impresión $this->impresion = array('print_ref' => '1', 'print_dto' => '1', 'print_alb' => '0'); $fsvar = new fs_var(); $this->impresion = $fsvar->array_get($this->impresion, FALSE); $this->logo = FALSE; if (file_exists('tmp/' . FS_TMP_NAME . 'logo.png')) { $this->logo = 'tmp/' . FS_TMP_NAME . 'logo.png'; } else { if (file_exists('tmp/' . FS_TMP_NAME . 'logo.jpg')) { $this->logo = 'tmp/' . FS_TMP_NAME . 'logo.jpg'; } } if (isset($_REQUEST['albaran']) and isset($_REQUEST['id'])) { $alb = new albaran_proveedor(); $this->albaran = $alb->get($_REQUEST['id']); if ($this->albaran) { $proveedor = new proveedor(); $this->proveedor = $proveedor->get($this->albaran->codproveedor); } if (isset($_POST['email'])) { $this->enviar_email('albaran'); } else { $this->generar_pdf_albaran(); } } else { if (isset($_REQUEST['factura']) and isset($_REQUEST['id'])) { $fac = new factura_proveedor(); $this->factura = $fac->get($_REQUEST['id']); if ($this->factura) { $proveedor = new proveedor(); $this->proveedor = $proveedor->get($this->factura->codproveedor); } $this->generar_pdf_factura(); } } $this->share_extensions(); }
protected function private_core() { $albaran = new albaran_proveedor(); $this->agente = new agente(); $this->serie = new serie(); $this->mostrar = 'todo'; if (isset($_GET['mostrar'])) { $this->mostrar = $_GET['mostrar']; setcookie('compras_alb_mostrar', $this->mostrar, time() + FS_COOKIES_EXPIRE); } else { if (isset($_COOKIE['compras_alb_mostrar'])) { $this->mostrar = $_COOKIE['compras_alb_mostrar']; } } $this->offset = 0; if (isset($_REQUEST['offset'])) { $this->offset = intval($_REQUEST['offset']); } $this->order = 'fecha DESC'; if (isset($_GET['order'])) { if ($_GET['order'] == 'fecha_desc') { $this->order = 'fecha DESC'; } else { if ($_GET['order'] == 'fecha_asc') { $this->order = 'fecha ASC'; } else { if ($_GET['order'] == 'codigo_desc') { $this->order = 'codigo DESC'; } else { if ($_GET['order'] == 'codigo_asc') { $this->order = 'codigo ASC'; } } } } setcookie('compras_alb_order', $this->order, time() + FS_COOKIES_EXPIRE); } else { if (isset($_COOKIE['compras_alb_order'])) { $this->order = $_COOKIE['compras_alb_order']; } } if (isset($_POST['buscar_lineas'])) { $this->buscar_lineas(); } else { if (isset($_REQUEST['buscar_proveedor'])) { $this->buscar_proveedor(); } else { if (isset($_GET['ref'])) { $this->template = 'extension/compras_albaranes_articulo'; $articulo = new articulo(); $this->articulo = $articulo->get($_GET['ref']); $linea = new linea_albaran_proveedor(); $this->resultados = $linea->all_from_articulo($_GET['ref'], $this->offset); } else { $this->share_extension(); $this->codagente = ''; $this->codserie = ''; $this->desde = ''; $this->hasta = ''; $this->num_resultados = ''; $this->proveedor = FALSE; $this->total_resultados = ''; $this->total_resultados_txt = ''; if (isset($_POST['delete'])) { $this->delete_albaran(); } else { if (!isset($_GET['mostrar']) and (isset($_REQUEST['codagente']) or isset($_REQUEST['codproveedor']))) { /** * si obtenermos un codagente o un codproveedor pasamos direcatemente * a la pestaña de búsqueda, a menos que tengamos un mostrar, que * entonces nos indica donde tenemos que estar. */ $this->mostrar = 'buscar'; } if (isset($_REQUEST['codproveedor'])) { if ($_REQUEST['codproveedor'] != '') { $pro0 = new proveedor(); $this->proveedor = $pro0->get($_REQUEST['codproveedor']); } } if (isset($_REQUEST['codagente'])) { $this->codagente = $_REQUEST['codagente']; } if (isset($_REQUEST['codserie'])) { $this->codserie = $_REQUEST['codserie']; $this->desde = $_REQUEST['desde']; $this->hasta = $_REQUEST['hasta']; } } /// añadimos segundo nivel de ordenación $order2 = ''; if ($this->order == 'fecha DESC') { $order2 = ', codigo DESC'; } else { if ($this->order == 'fecha ASC') { $order2 = ', codigo ASC'; } } if ($this->mostrar == 'pendientes') { $this->resultados = $albaran->all_ptefactura($this->offset, $this->order . $order2); if ($this->offset == 0) { $this->total_resultados = 0; $this->total_resultados_txt = 'Suma total de esta página:'; foreach ($this->resultados as $alb) { $this->total_resultados += $alb->total; } } } else { if ($this->mostrar == 'buscar') { $this->buscar($order2); } else { $this->resultados = $albaran->all($this->offset, $this->order . $order2); } } } } } }
protected function private_core() { $this->desde = Date('01-m-Y'); if (isset($_POST['desde'])) { $this->desde = $_POST['desde']; } $this->hasta = Date('d-m-Y'); if (isset($_POST['hasta'])) { $this->hasta = $_POST['hasta']; } $this->codproveedor = FALSE; if (!isset($_POST['todos']) and isset($_POST['codproveedor'])) { $this->codproveedor = $_POST['codproveedor']; $pro0 = new proveedor(); $this->proveedor = $pro0->get($this->codproveedor); } $this->serie = new serie(); $this->codserie = FALSE; if (isset($_POST['codserie'])) { $this->codserie = $_POST['codserie']; } if (isset($_REQUEST['buscar_proveedor'])) { $this->buscar_proveedor(); } else { if (in_array('tesoreria', $GLOBALS['plugins'])) { $this->new_error_msg('Si usas el <b>plugin Tesorería</b> no puedes usar este' . ' asistente para pagar todas las facturas.'); } else { if (isset($_POST['idfactura'])) { /// ¿Marcamos ya las facturas? $num = 0; $asi0 = new asiento(); $asifac = new asiento_factura(); $fact0 = new factura_proveedor(); foreach ($_POST['idfactura'] as $id) { $factura = $fact0->get($id); if ($factura) { $asiento = $asi0->get($factura->idasiento); if ($asiento) { $factura->idasientop = $asifac->generar_asiento_pago($asiento, $factura->codpago); if ($factura->idasientop) { $factura->pagada = TRUE; if ($factura->save()) { $num++; } } } else { $factura->pagada = TRUE; if ($factura->save()) { $num++; } } } } foreach ($asifac->errors as $err) { $this->new_error_msg($err); } $this->new_message($num . ' facturas marcadas como pagadas, estas son las siguientes.'); } else { $this->share_extensions(); } } } $this->resultados = FALSE; if (isset($_POST['desde'])) { $this->resultados = $this->buscar_facturas(); } }
public function proveedores() { $provelist = array(); $data = $this->db->select("SELECT DISTINCT codproveedor FROM albaranesprov\n WHERE idalbaran IN (SELECT DISTINCT idalbaran FROM lineasalbaranesprov WHERE referencia IN\n (SELECT referencia FROM articulos WHERE codfamilia = " . $this->var2str($this->codfamilia) . "));"); if ($data) { $pro0 = new proveedor(); foreach ($data as $d) { $provelist[] = $pro0->get($d['codproveedor']); } } return $provelist; }
/** * Genera el asiento contable para una factura de compra. * Devuelve TRUE si el asiento se ha generado correctamente, False en caso contrario. * Si genera el asiento, este es accesible desde $this->asiento. * @param type $factura */ public function generar_asiento_compra(&$factura) { $ok = FALSE; $this->asiento = FALSE; $proveedor0 = new proveedor(); $subcuenta_prov = FALSE; $proveedor = $proveedor0->get($factura->codproveedor); if ($proveedor) { $subcuenta_prov = $proveedor->get_subcuenta($factura->codejercicio); } if ($factura->totalirpf != 0 or $factura->totalrecargo != 0) { $this->new_error_msg('Todavía no se pueden generar asientos de facturas con IRPF o recargo.'); } else { if (!$subcuenta_prov) { $eje0 = $this->ejercicio->get($factura->codejercicio); $this->new_message("No se ha podido generar una subcuenta para el proveedor\n <a href='" . $eje0->url() . "'>¿Has importado los datos del ejercicio?</a>\n 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; $asiento->concepto = "Factura de compra " . $factura->codigo . " - " . $factura->nombre; $asiento->documento = $factura->codigo; $asiento->editable = FALSE; $asiento->fecha = $factura->fecha; $asiento->importe = $factura->total; $asiento->tipodocumento = "Factura de proveedor"; if ($asiento->save()) { $asiento_correcto = TRUE; $subcuenta = new subcuenta(); $partida0 = new partida(); $partida0->idasiento = $asiento->idasiento; $partida0->concepto = $asiento->concepto; $partida0->idsubcuenta = $subcuenta_prov->idsubcuenta; $partida0->codsubcuenta = $subcuenta_prov->codsubcuenta; $partida0->haber = $factura->total; $partida0->coddivisa = $factura->coddivisa; $partida0->tasaconv = $factura->tasaconv; 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 $subcuenta_iva = $subcuenta->get_cuentaesp('IVASOP', $asiento->codejercicio); foreach ($factura->get_lineas_iva() as $li) { 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->debe = $li->totaliva; $partida1->idcontrapartida = $subcuenta_prov->idsubcuenta; $partida1->codcontrapartida = $subcuenta_prov->codsubcuenta; $partida1->cifnif = $proveedor->cifnif; $partida1->documento = $asiento->documento; $partida1->tipodocumento = $asiento->tipodocumento; $partida1->codserie = $factura->codserie; $partida1->factura = $factura->numero; $partida1->baseimponible = $li->neto; $partida1->iva = $li->iva; $partida1->coddivisa = $factura->coddivisa; $partida1->tasaconv = $factura->tasaconv; if (!$partida1->save()) { $asiento_correcto = FALSE; $this->new_error_msg("¡Imposible generar la partida para la subcuenta " . $partida1->codsubcuenta . "!"); } } } $subcuenta_compras = $subcuenta->get_cuentaesp('COMPRA', $asiento->codejercicio); if ($subcuenta_compras and $asiento_correcto) { $partida2 = new partida(); $partida2->idasiento = $asiento->idasiento; $partida2->concepto = $asiento->concepto; $partida2->idsubcuenta = $subcuenta_compras->idsubcuenta; $partida2->codsubcuenta = $subcuenta_compras->codsubcuenta; $partida2->debe = $factura->neto; $partida2->coddivisa = $factura->coddivisa; $partida2->tasaconv = $factura->tasaconv; if (!$partida2->save()) { $asiento_correcto = FALSE; $this->new_error_msg("¡Imposible generar la partida para la subcuenta " . $partida2->codsubcuenta . "!"); } } if ($asiento_correcto) { $factura->idasiento = $asiento->idasiento; if ($factura->save()) { $ok = TRUE; $this->asiento = $asiento; } else { $this->new_error_msg("¡Imposible añadir el asiento a la factura!"); } } else { if ($asiento->delete()) { $this->new_message("El asiento se ha borrado."); } else { $this->new_error_msg("¡Imposible borrar el asiento!"); } } } } } return $ok; }
protected function private_core() { $this->agente = new agente(); $this->factura = new factura_proveedor(); $this->serie = new serie(); $albaran = new albaran_proveedor(); $this->autorizar_factura = 1; if (isset($_GET['nueva'])) { if ($_GET['nueva'] == 1) { $this->new_message("Factura guardada correctamente."); } if ($_GET['nueva'] == 2) { $this->new_error_msg("La Factura no se guardó. La Fecha corresponde a un ejercicio Cerrado o Inexistente."); } } $this->mostrar = 'todo'; if (isset($_GET['mostrar'])) { $this->mostrar = $_GET['mostrar']; setcookie('compras_fac_mostrar', $this->mostrar, time() + FS_COOKIES_EXPIRE); } else { if (isset($_COOKIE['compras_fac_mostrar'])) { $this->mostrar = $_COOKIE['compras_fac_mostrar']; } } $this->offset = 0; if (isset($_GET['offset'])) { $this->offset = intval($_GET['offset']); } $this->order = 'fecha DESC'; if (isset($_GET['order'])) { if ($_GET['order'] == 'fecha_desc') { $this->order = 'fecha DESC'; } else { if ($_GET['order'] == 'fecha_asc') { $this->order = 'fecha ASC'; } else { if ($_GET['order'] == 'codigo_desc') { $this->order = 'numproveedor DESC'; } else { if ($_GET['order'] == 'codigo_asc') { $this->order = 'numproveedor ASC'; } } } } setcookie('compras_fac_order', $this->order, time() + FS_COOKIES_EXPIRE); } else { if (isset($_COOKIE['compras_fac_order'])) { $this->order = $_COOKIE['compras_fac_order']; } } if (isset($_POST['buscar_lineas'])) { $this->buscar_lineas(); } else { if (isset($_REQUEST['buscar_proveedor'])) { $this->buscar_proveedor(); } else { if (isset($_GET['ref'])) { $this->template = 'extension/compras_facturas_articulo'; $articulo = new articulo(); $this->articulo = $articulo->get($_GET['ref']); $linea = new linea_factura_proveedor(); $this->resultados = $linea->all_from_articulo($_GET['ref'], $this->offset); } else { $this->share_extension(); $this->proveedor = FALSE; $this->codagente = ''; $this->codserie = ''; $this->desde = ''; $this->hasta = ''; $this->num_resultados = ''; $this->total_resultados = ''; $this->total_resultados_txt = ''; if (isset($_POST['delete'])) { $this->delete_albaran(); } if (isset($_GET['delete'])) { $this->delete_factura(); } else { if (!isset($_GET['mostrar']) and (isset($_REQUEST['codagente']) or isset($_REQUEST['codproveedor']))) { /** * si obtenermos un codagente o un codproveedor pasamos direcatemente * a la pestaña de búsqueda, a menos que tengamos un mostrar, que * entonces nos indica donde tenemos que estar. */ $this->mostrar = 'buscar'; } if (isset($_REQUEST['codproveedor'])) { if ($_REQUEST['codproveedor'] != '') { $pro0 = new proveedor(); $this->proveedor = $pro0->get($_REQUEST['codproveedor']); } } if (isset($_REQUEST['codagente'])) { $this->codagente = $_REQUEST['codagente']; } if (isset($_REQUEST['codserie'])) { $this->codserie = $_REQUEST['codserie']; $this->desde = $_REQUEST['desde']; $this->hasta = $_REQUEST['hasta']; } } /// añadimos segundo nivel de ordenación $order2 = ''; if ($this->order == 'fecha DESC') { $order2 = ', numproveedor DESC'; } else { if ($this->order == 'fecha ASC') { $order2 = ', numproveedor ASC'; } } if ($this->mostrar == 'sinpagar') { $this->resultados = $this->factura->all_sin_pagar($this->offset, FS_ITEM_LIMIT, $this->order . $order2); if ($this->offset == 0) { $this->total_resultados = 0; $this->total_resultados_txt = 'Suma total de esta página:'; foreach ($this->resultados as $alb) { $this->total_resultados += $alb->total; } } } else { if ($this->mostrar == 'buscar') { $this->buscar($order2); } else { $this->resultados = $this->factura->all($this->offset, FS_ITEM_LIMIT, $this->order . $order2); } } } } } if ($this->mostrar == 'remitos') { $this->resultados = $albaran->all_ptefactura($this->offset, $this->order . $order2); if ($this->offset == 0) { $this->total_resultados = 0; $this->total_resultados_txt = 'Suma total de esta página:'; foreach ($this->resultados as $alb) { $this->total_resultados += $alb->total; } } } }
function FormularioAlta($esPopup = false) { global $action; $oProveedor = new proveedor(); $oProveedor->Crea(); if (!$esPopup) { echo gas("cabecera", _("Gestion de Proveedores")); } $ot = getTemplate("FormAltaProveedor"); if (!$ot) { error(__FILE__ . __LINE__, "Info: template no encontrado"); return false; } $ot->fijar("action", $action); $ot->fijar("tTitulo", _("Alta proveedor")); $ot->fijar("tModPagoHabitual", _("Modo pago hab.")); $ot->fijar("vIdModPagoHabitual", $oProveedor->get("IdModPagoHabitual")); $ot->fijar("comboModPagoHabitual", genComboModPagoHabitual($oProveedor->get("IdModPagoHabitual"))); $ot->campo(_("Pagina web"), "PaginaWeb", $oProveedor); $ot->fijar("tIdPais", _("País")); $ot->fijar("comboIdPais", genComboPaises($oProveedor->get("IdPais"))); $ot->campo(_("Nombre comercial"), "NombreComercial", $oProveedor); $ot->campo(_("Nombre legal"), "NombreLegal", $oProveedor); $ot->campo(_("Dirección"), "Direccion", $oProveedor); $ot->campo(_("Localidad"), "Localidad", $oProveedor); $ot->campo(_("Código postal"), "CP", $oProveedor); $ot->campo(_("Telf.(1)"), "Telefono1", $oProveedor); $ot->campo(_("Telf.(2)"), "Telefono2", $oProveedor); $ot->campo(_("Contacto"), "Contacto", $oProveedor); $ot->campo(_("Cargo"), "Cargo", $oProveedor); $ot->campo(_("Email"), "Email", $oProveedor); $ot->campo(_("Cuenta bancaria"), "CuentaBancaria", $oProveedor); $ot->campo(_("Número fiscal"), "NumeroFiscal", $oProveedor); $ot->campo(_("Comentarios"), "Comentarios", $oProveedor); if ($esPopup) { $ot->fijar("vesPopup", 1); $ot->fijar("onClose", "window.close()"); } else { $ot->fijar("vesPopup", 0); $ot->fijar("onClose", "location.href='modproveedores.php'"); } echo $ot->Output(); }
/** * Genera el asiento contable para una factura de CRÉDITO de compra. * Devuelve TRUE si el asiento se ha generado correctamente, False en caso contrario. * Si genera el asiento, este es accesible desde $this->asiento. * @param type $factura */ public function generar_asiento_compra_credito(&$factura) { $ok = FALSE; $this->asiento = FALSE; $proveedor0 = new proveedor(); $subcuenta_prov = FALSE; $proveedor = $proveedor0->get($factura->codproveedor); if ($proveedor) { /// Obtengo subcuenta proveedor $subcuenta_prov = $proveedor->get_subcuenta($factura->codejercicio); } if (!$subcuenta_prov) { $eje0 = $this->ejercicio->get($factura->codejercicio); $this->new_message("No se ha podido generar una subcuenta para el proveedor\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; $asiento->concepto = "Factura de compra " . $factura->codigo . " - " . $factura->nombre; $asiento->documento = $factura->codigo; $asiento->editable = TRUE; $asiento->fecha = $factura->fecha; $asiento->importe = $factura->total; $asiento->tipodocumento = "Ingreso proveedor"; if ($asiento->save()) { $asiento_correcto = TRUE; $subcuenta = new subcuenta(); /////// Acá se genera la partida con cada subcuenta $subcuenta_compras = $subcuenta->get_cuentaesp('COMPRA', $asiento->codejercicio); //////////////////////////////////////////////////////////////////////////////////////// if ($subcuenta_compras and $asiento_correcto) { $partida2 = new partida(); $partida2->idasiento = $asiento->idasiento; $partida2->concepto = $asiento->concepto; $partida2->idsubcuenta = $subcuenta_prov->idsubcuenta; $partida2->codsubcuenta = $subcuenta_prov->codsubcuenta; ///////// Proveedor compra debe //////////////////////// $partida2->debe = $factura->neto; $partida2->coddivisa = $factura->coddivisa; $partida2->tasaconv = $factura->tasaconv; $partida2->codserie = $factura->codserie; if (!$partida2->save()) { $asiento_correcto = FALSE; $this->new_error_msg("¡Imposible generar la partida para la subcuenta " . $partida2->codsubcuenta . "!"); } } ///////////////////////////////////////////////////////////////////////////////////////// /// generamos una partida por cada impuesto $subcuenta_iva = $subcuenta->get_cuentaesp('IVASOP', $asiento->codejercicio); foreach ($factura->get_lineas_iva() as $li) { 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->debe = $li->totaliva; $partida1->idcontrapartida = $subcuenta_prov->idsubcuenta; $partida1->codcontrapartida = $subcuenta_prov->codsubcuenta; $partida1->cifnif = $proveedor->cifnif; $partida1->documento = $asiento->documento; $partida1->tipodocumento = $asiento->tipodocumento; $partida1->codserie = $factura->codserie; $partida1->factura = $factura->numero; $partida1->baseimponible = $li->neto; $partida1->iva = $li->iva; $partida1->coddivisa = $factura->coddivisa; $partida1->tasaconv = $factura->tasaconv; 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(); $partida11->idasiento = $asiento->idasiento; $partida11->concepto = $asiento->concepto; $partida11->idsubcuenta = $subcuenta_iva->idsubcuenta; $partida11->codsubcuenta = $subcuenta_iva->codsubcuenta; $partida11->debe = $li->totalrecargo; $partida11->idcontrapartida = $subcuenta_prov->idsubcuenta; $partida11->codcontrapartida = $subcuenta_prov->codsubcuenta; $partida11->cifnif = $proveedor->cifnif; $partida11->documento = $asiento->documento; $partida11->tipodocumento = $asiento->tipodocumento; $partida11->codserie = $factura->codserie; $partida11->factura = $factura->numero; $partida11->baseimponible = $li->neto; $partida11->recargo = $li->recargo; $partida11->coddivisa = $factura->coddivisa; $partida11->tasaconv = $factura->tasaconv; if (!$partida11->save()) { $asiento_correcto = FALSE; $this->new_error_msg("¡Imposible generar la partida para la subcuenta " . $partida11->codsubcuenta . "!"); } } } } ///////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// /// Separa las subcuentas de las facturas y crea los asientos ////////////////////////////////////////////////////////// $partida0 = new partida(); $lineas_f = new linea_factura_proveedor(); $lineas_fact = $lineas_f->all_from_factura($factura->idfactura); for ($i = 0; $i < count($lineas_fact); $i++) { $total_sub = 0; $finaliza = 0; $subcuenta1 = $lineas_fact[$i]->codsubcuenta; $idsubcuen = $lineas_fact[$i]->idsubcuenta; for ($j = 0; $j < $i; $j++) { if ($subcuenta1 == $lineas_fact[$j]->codsubcuenta) { $finaliza = 1; } } if ($finaliza == 0) { for ($k = 0; $k < count($lineas_fact); $k++) { if ($subcuenta1 == $lineas_fact[$k]->codsubcuenta) { $total_sub = $total_sub + $lineas_fact[$k]->pvptotal; } } $partida0->idasiento = $asiento->idasiento; $partida0->concepto = $asiento->concepto; $partida0->idsubcuenta = $idsubcuen; $partida0->codsubcuenta = $subcuenta1; /////////// Proveedor haber ///////// $partida0->haber = $total_sub; $partida0->coddivisa = $factura->coddivisa; $partida0->tasaconv = $factura->tasaconv; $partida0->codserie = $factura->codserie; if (!$partida0->save()) { $asiento_correcto = FALSE; $this->new_error_msg("¡Imposible generar la partida para la subcuenta " . $partida0->codsubcuenta . "!"); } } } ///////////////////////////////////////////////////////// //////////////////////////////////////////////////////// ///////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////// /// ¿IRPF? if ($factura->totalirpf != 0 and $asiento_correcto) { $subcuenta_irpf = $subcuenta->get_cuentaesp('IRPFPR', $asiento->codejercicio); if ($subcuenta_irpf) { $partida3 = new partida(); $partida3->idasiento = $asiento->idasiento; $partida3->concepto = $asiento->concepto; $partida3->idsubcuenta = $subcuenta_irpf->idsubcuenta; $partida3->codsubcuenta = $subcuenta_irpf->codsubcuenta; $partida3->haber = $factura->totalirpf; $partida3->coddivisa = $factura->coddivisa; $partida3->tasaconv = $factura->tasaconv; $partida3->codserie = $factura->codserie; if (!$partida3->save()) { $asiento_correcto = FALSE; $this->new_error_msg("¡Imposible generar la partida para la subcuenta " . $partida3->codsubcuenta . "!"); } } } if ($asiento_correcto) { $factura->idasiento = $asiento->idasiento; if ($factura->save()) { $ok = TRUE; $this->asiento = $asiento; } else { $this->new_error_msg("¡Imposible añadir el asiento a la factura!"); } } else { if ($asiento->delete()) { $this->new_message("El asiento se ha borrado."); } else { $this->new_error_msg("¡Imposible borrar el asiento!"); } } } } return $ok; }
protected function private_core() { $this->agente = new agente(); $this->factura = new factura_proveedor(); $this->serie = new serie(); $this->mostrar = 'todo'; if (isset($_GET['mostrar'])) { $this->mostrar = $_GET['mostrar']; setcookie('compras_fac_mostrar', $this->mostrar, time() + FS_COOKIES_EXPIRE); } else { if (isset($_COOKIE['compras_fac_mostrar'])) { $this->mostrar = $_COOKIE['compras_fac_mostrar']; } } $this->offset = 0; if (isset($_GET['offset'])) { $this->offset = intval($_GET['offset']); } $this->order = 'fecha DESC'; if (isset($_GET['order'])) { if ($_GET['order'] == 'fecha_desc') { $this->order = 'fecha DESC'; } else { if ($_GET['order'] == 'fecha_asc') { $this->order = 'fecha ASC'; } else { if ($_GET['order'] == 'codigo_desc') { $this->order = 'codigo DESC'; } else { if ($_GET['order'] == 'codigo_asc') { $this->order = 'codigo ASC'; } else { if ($_GET['order'] == 'total_desc') { $this->order = 'total DESC'; } } } } } setcookie('compras_fac_order', $this->order, time() + FS_COOKIES_EXPIRE); } else { if (isset($_COOKIE['compras_fac_order'])) { $this->order = $_COOKIE['compras_fac_order']; } } if (isset($_POST['buscar_lineas'])) { $this->buscar_lineas(); } else { if (isset($_REQUEST['buscar_proveedor'])) { $this->buscar_proveedor(); } else { if (isset($_GET['ref'])) { $this->template = 'extension/compras_facturas_articulo'; $articulo = new articulo(); $this->articulo = $articulo->get($_GET['ref']); $linea = new linea_factura_proveedor(); $this->resultados = $linea->all_from_articulo($_GET['ref'], $this->offset); } else { $this->share_extension(); $this->proveedor = FALSE; $this->codagente = ''; $this->codserie = ''; $this->desde = ''; $this->estado = ''; $this->hasta = ''; $this->num_resultados = ''; $this->total_resultados = array(); $this->total_resultados_txt = ''; if (isset($_GET['delete'])) { $this->delete_factura(); } else { if (!isset($_GET['mostrar']) and (isset($_REQUEST['codagente']) or isset($_REQUEST['codproveedor']) or isset($_REQUEST['codserie']))) { /** * si obtenermos un codagente, un codproveedor o un codserie pasamos direcatemente * a la pestaña de búsqueda, a menos que tengamos un mostrar, que * entonces nos indica donde tenemos que estar. */ $this->mostrar = 'buscar'; } if (isset($_REQUEST['codproveedor'])) { if ($_REQUEST['codproveedor'] != '') { $pro0 = new proveedor(); $this->proveedor = $pro0->get($_REQUEST['codproveedor']); } } if (isset($_REQUEST['codagente'])) { $this->codagente = $_REQUEST['codagente']; } if (isset($_REQUEST['codserie'])) { $this->codserie = $_REQUEST['codserie']; } if (isset($_REQUEST['desde'])) { $this->desde = $_REQUEST['desde']; $this->hasta = $_REQUEST['hasta']; $this->estado = $_REQUEST['estado']; } } /// añadimos segundo nivel de ordenación $order2 = ''; if ($this->order == 'fecha DESC') { $order2 = ', hora DESC, numero DESC'; } else { if ($this->order == 'fecha ASC') { $order2 = ', hora ASC, numero ASC'; } } if ($this->mostrar == 'sinpagar') { $this->resultados = $this->factura->all_sin_pagar($this->offset, FS_ITEM_LIMIT, $this->order . $order2); if ($this->offset == 0) { /// calculamos el total, pero desglosando por divisa $this->total_resultados = array(); $this->total_resultados_txt = 'Suma total de esta página:'; foreach ($this->resultados as $fac) { if (!isset($this->total_resultados[$fac->coddivisa])) { $this->total_resultados[$fac->coddivisa] = array('coddivisa' => $fac->coddivisa, 'total' => 0); } $this->total_resultados[$fac->coddivisa]['total'] += $fac->total; } } } else { if ($this->mostrar == 'buscar') { $this->buscar($order2); } else { $this->resultados = $this->factura->all($this->offset, FS_ITEM_LIMIT, $this->order . $order2); } } } } } }
/** * Genera el asiento contable para una factura de compra. * 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_proveedor $factura */ public function generar_asiento_compra(&$factura) { $ok = FALSE; $this->asiento = FALSE; $proveedor0 = new proveedor(); $subcuenta_prov = 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) { $div0 = new divisa(); $divisa = $div0->get($this->empresa->coddivisa); if ($divisa) { $tasaconv = $divisa->tasaconv_compra / $factura->tasaconv; $tasaconv2 = $divisa->tasaconv_compra; } } /// obtenemos el proveedor de la factura y su subcuenta $proveedor = $proveedor0->get($factura->codproveedor); if ($proveedor) { $subcuenta_prov = $proveedor->get_subcuenta($factura->codejercicio); } if (!$subcuenta_prov) { $eje0 = $this->ejercicio->get($factura->codejercicio); $this->new_message("No se ha podido generar una subcuenta para el proveedor\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->codigorect . " (compras) - " . $factura->nombre; } else { $asiento->concepto = "Factura de compra " . $factura->codigo . " - " . $factura->nombre; } $asiento->documento = $factura->codigo; $asiento->editable = FALSE; $asiento->fecha = $factura->fecha; $asiento->importe = abs($factura->total * $tasaconv); $asiento->tipodocumento = "Factura de proveedor"; if ($asiento->save()) { $asiento_correcto = TRUE; $subcuenta = new subcuenta(); $partida0 = new partida(); $partida0->idasiento = $asiento->idasiento; $partida0->concepto = $asiento->concepto; $partida0->idsubcuenta = $subcuenta_prov->idsubcuenta; $partida0->codsubcuenta = $subcuenta_prov->codsubcuenta; $partida0->haber = $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]->codsubcuentasop) { $subcuenta_iva = $subcuenta->get_by_codigo($this->impuestos[$li->codimpuesto]->codsubcuentasop, $asiento->codejercicio); } } if (!$subcuenta_iva) { $subcuenta_iva = $subcuenta->get_cuentaesp('IVASOP', $asiento->codejercicio); } 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->debe = $li->totaliva * $tasaconv; $partida1->idcontrapartida = $subcuenta_prov->idsubcuenta; $partida1->codcontrapartida = $subcuenta_prov->codsubcuenta; $partida1->cifnif = $proveedor->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(); $partida11->idasiento = $asiento->idasiento; $partida11->concepto = $asiento->concepto; $partida11->idsubcuenta = $subcuenta_iva->idsubcuenta; $partida11->codsubcuenta = $subcuenta_iva->codsubcuenta; $partida11->debe = $li->totalrecargo * $tasaconv; $partida11->idcontrapartida = $subcuenta_prov->idsubcuenta; $partida11->codcontrapartida = $subcuenta_prov->codsubcuenta; $partida11->cifnif = $proveedor->cifnif; $partida11->documento = $asiento->documento; $partida11->tipodocumento = $asiento->tipodocumento; $partida11->codserie = $factura->codserie; $partida11->factura = $factura->numero; $partida11->baseimponible = $li->neto * $tasaconv; $partida11->recargo = $li->recargo; $partida11->coddivisa = $this->empresa->coddivisa; $partida11->tasaconv = $tasaconv2; if (!$partida11->save()) { $asiento_correcto = FALSE; $this->new_error_msg("¡Imposible generar la partida para la subcuenta " . $partida11->codsubcuenta . "!"); } } } else { if (!$subcuenta_iva) { $asiento_correcto = FALSE; $this->new_error_msg('No se encuentra la subcuenta de ' . FS_IVA); } } } $subcuenta_compras = $subcuenta->get_cuentaesp('COMPRA', $asiento->codejercicio); if ($subcuenta_compras and $asiento_correcto) { $partida2 = new partida(); $partida2->idasiento = $asiento->idasiento; $partida2->concepto = $asiento->concepto; $partida2->idsubcuenta = $subcuenta_compras->idsubcuenta; $partida2->codsubcuenta = $subcuenta_compras->codsubcuenta; $partida2->debe = $factura->neto * $tasaconv; $partida2->coddivisa = $this->empresa->coddivisa; $partida2->tasaconv = $tasaconv2; $partida2->codserie = $factura->codserie; if (!$partida2->save()) { $asiento_correcto = FALSE; $this->new_error_msg("¡Imposible generar la partida para la subcuenta " . $partida2->codsubcuenta . "!"); } } else { if (!$subcuenta_compras) { $asiento_correcto = FALSE; $this->new_error_msg('No se encuentra la subcuenta de compras.'); } } /// ¿IRPF? if ($factura->totalirpf != 0 and $asiento_correcto) { $subcuenta_irpf = $subcuenta->get_cuentaesp('IRPFPR', $asiento->codejercicio); if ($subcuenta_irpf) { $partida3 = new partida(); $partida3->idasiento = $asiento->idasiento; $partida3->concepto = $asiento->concepto; $partida3->idsubcuenta = $subcuenta_irpf->idsubcuenta; $partida3->codsubcuenta = $subcuenta_irpf->codsubcuenta; $partida3->haber = $factura->totalirpf * $tasaconv; $partida3->coddivisa = $this->empresa->coddivisa; $partida3->tasaconv = $tasaconv2; $partida3->codserie = $factura->codserie; if (!$partida3->save()) { $asiento_correcto = FALSE; $this->new_error_msg("¡Imposible generar la partida para la subcuenta " . $partida3->codsubcuenta . "!"); } } else { if (!$subcuenta_irpf) { $asiento_correcto = FALSE; $this->new_error_msg('No se encuentra la subcuenta de ' . FS_IRPF); } } } /// comprobamos si los artículos tienen subcuentas asociadas if ($asiento_correcto) { $partidaA = new partida(); $partidaA->idasiento = $asiento->idasiento; $partidaA->concepto = $asiento->concepto; $partidaA->coddivisa = $this->empresa->coddivisa; $partidaA->tasaconv = $tasaconv2; /// importe a restar a la partida2 $restar = 0; /** * Para cada artículo de la factura, buscamos su subcuenta de compra o compra con irpf */ $art0 = new articulo(); foreach ($factura->get_lineas() as $lin) { $subcart = FALSE; $articulo = $art0->get($lin->referencia); if ($articulo) { if ($lin->irpf != 0) { $subcart = $subcuenta->get_by_codigo($articulo->codsubcuentairpfcom, $factura->codejercicio); } else { if ($articulo->codsubcuentacom) { $subcart = $subcuenta->get_by_codigo($articulo->codsubcuentacom, $factura->codejercicio); } } if (!$subcart) { /// no hay / no se encuentra ninguna subcuenta asignada al artículo } else { if ($subcart->idsubcuenta != $subcuenta_compras->idsubcuenta) { if (is_null($partidaA->idsubcuenta)) { $partidaA->idsubcuenta = $subcart->idsubcuenta; $partidaA->codsubcuenta = $subcart->codsubcuenta; $partidaA->debe = $lin->pvptotal * $tasaconv; } else { if ($partidaA->idsubcuenta == $subcart->idsubcuenta) { $partidaA->debe += $lin->pvptotal * $tasaconv; } else { $partidaA->debe = round($partidaA->debe, FS_NF0); $restar += $partidaA->debe; if (!$partidaA->save()) { $asiento_correcto = FALSE; $this->new_error_msg("¡Imposible generar la partida para la subcuenta del artículo " . $lin->referencia . "!"); } $partidaA = new partida(); $partidaA->idasiento = $asiento->idasiento; $partidaA->concepto = $asiento->concepto; $partidaA->idsubcuenta = $subcart->idsubcuenta; $partidaA->codsubcuenta = $subcart->codsubcuenta; $partidaA->debe = $lin->pvptotal * $tasaconv; $partidaA->coddivisa = $this->empresa->coddivisa; $partidaA->tasaconv = $tasaconv2; } } } } } } if ($partidaA->idsubcuenta and $partidaA->codsubcuenta) { $partidaA->debe = round($partidaA->debe, FS_NF0); $restar += $partidaA->debe; if ($partidaA->save()) { $partida2->debe -= $restar; $partida2->save(); } else { $asiento_correcto = FALSE; $this->new_error_msg("¡Imposible generar la partida para la subcuenta del artículo " . $lin->referencia . "!"); } } } if ($asiento_correcto) { /// si es una factura rectificativa, invertimos los importes if ($factura->idfacturarect) { $this->invertir_asiento($asiento); } $factura->idasiento = $asiento->idasiento; if ($factura->save()) { $ok = $this->check_asiento($asiento); if (!$ok) { $this->new_error_msg('El asiento está descuadrado.'); } $this->asiento = $asiento; } else { $this->new_error_msg("¡Imposible añadir el asiento a la factura!"); } } else { if ($asiento->delete()) { $this->new_message("El asiento se ha borrado."); } else { $this->new_error_msg("¡Imposible borrar el asiento!"); } } } } return $ok; }
protected function private_core() { $this->ppage = $this->page->get('compras_facturas'); $this->agente = FALSE; $this->ejercicio = new ejercicio(); $factura = new factura_proveedor(); $this->factura = FALSE; $this->forma_pago = new forma_pago(); $this->proveedor = FALSE; /// ¿El usuario tiene permiso para eliminar en esta página? $this->allow_delete = $this->user->allow_delete_on(__CLASS__); /** * Si hay alguna extensión de tipo config y texto no_button_pagada, * desactivamos el botón de pagada/sin pagar. */ $this->mostrar_boton_pagada = TRUE; foreach ($this->extensions as $ext) { if ($ext->type == 'config' and $ext->text == 'no_button_pagada') { $this->mostrar_boton_pagada = FALSE; break; } } if (isset($_POST['idfactura'])) { $this->factura = $factura->get($_POST['idfactura']); $this->factura->numproveedor = $_POST['numproveedor']; $this->factura->observaciones = $_POST['observaciones']; $this->factura->codpago = $_POST['forma_pago']; /// obtenemos el ejercicio para poder acotar la fecha $eje0 = $this->ejercicio->get($this->factura->codejercicio); if ($eje0) { $this->factura->fecha = $eje0->get_best_fecha($_POST['fecha'], TRUE); $this->factura->hora = $_POST['hora']; } else { $this->new_error_msg('No se encuentra el ejercicio asociado a la factura.'); } if ($this->factura->save()) { $asiento = $this->factura->get_asiento(); if ($asiento) { $asiento->fecha = $this->factura->fecha; if (!$asiento->save()) { $this->new_error_msg("Imposible modificar la fecha del asiento."); } } $this->new_message("Factura modificada correctamente."); $this->new_change('Factura Proveedor ' . $this->factura->codigo, $this->factura->url()); } else { $this->new_error_msg("¡Imposible modificar la factura!"); } } else { if (isset($_GET['id'])) { $this->factura = $factura->get($_GET['id']); } } if ($this->factura) { $this->page->title = $this->factura->codigo; /// cargamos el agente if (!is_null($this->factura->codagente)) { $agente = new agente(); $this->agente = $agente->get($this->factura->codagente); } /// cargamos el proveedor $proveedor = new proveedor(); $this->proveedor = $proveedor->get($this->factura->codproveedor); if (isset($_GET['gen_asiento']) and isset($_GET['petid'])) { if ($this->duplicated_petition($_GET['petid'])) { $this->new_error_msg('Petición duplicada. Evita hacer doble clic sobre los botones.'); } else { $this->generar_asiento(); } } else { if (isset($_REQUEST['pagada'])) { $this->factura->pagada = $_REQUEST['pagada'] == 'TRUE'; if ($this->factura->save()) { $this->new_message("Factura modificada correctamente."); } else { $this->new_error_msg("¡Imposible modificar la factura!"); } } } /// comprobamos la factura $this->factura->full_test(); } else { $this->new_error_msg("¡Factura de proveedor no encontrada!"); } }
protected function private_core() { $this->tipo = FALSE; $this->subcuenta = FALSE; $this->cuenta = new cuenta(); /// seleccionamos el ejercicio $ejercicio = new ejercicio(); $eje0 = $ejercicio->get_by_fecha(date('d-m-Y')); if (isset($_POST['codejercicio'])) { $this->codejercicio = $_POST['codejercicio']; } else { if ($eje0) { $this->codejercicio = $eje0->codejercicio; } else { $this->codejercicio = $this->default_items->codejercicio(); } } if (isset($_POST['ejercicio']) and isset($_POST['query'])) { $this->new_search(); } else { if (isset($_REQUEST['cli'])) { $this->tipo = 'cli'; $cliente = new cliente(); $this->cliente = $cliente->get($_REQUEST['cli']); if ($this->cliente) { $subcuenta_cliente = new subcuenta_cliente(); if (isset($_GET['delete_sca'])) { $aux_sca = $subcuenta_cliente->get2($_GET['delete_sca']); if ($aux_sca) { if ($aux_sca->delete()) { $this->new_message('El cliente ya no está asocuado a esa subcuenta.'); } else { $this->new_error_msg('Imposible quitar la subcuenta.'); } } else { $this->new_error_msg('Relación con la subcuenta no encontrada.'); } } else { if (isset($_GET['idsc'])) { $this->subcuenta_a = $subcuenta_cliente->get($_GET['cli'], $_GET['idsc']); if ($this->subcuenta_a) { $this->subcuenta = $this->subcuenta_a->get_subcuenta(); $this->codejercicio = $this->subcuenta_a->codejercicio; } } else { if (isset($_POST['idsc'])) { $this->subcuenta_a = $subcuenta_cliente->get($_POST['cli'], $_POST['idsc']); if ($this->subcuenta_a) { $subc = new subcuenta(); $subc0 = $subc->get($_POST['idsc2']); if ($subc0) { $this->subcuenta_a->idsubcuenta = $subc0->idsubcuenta; $this->subcuenta_a->codsubcuenta = $subc0->codsubcuenta; $this->subcuenta_a->codejercicio = $subc0->codejercicio; if ($this->subcuenta_a->save()) { $this->new_message('Datos guardados correctamente.'); } else { $this->new_error_msg('Imposible asignar la subcuenta al cliente.'); } $this->subcuenta = $subc0; } else { $this->new_error_msg('Subcuenta no encontrada.'); $this->subcuenta = $this->subcuenta_a->get_subcuenta(); } } } else { if (isset($_POST['idsc2'])) { $subc = new subcuenta(); $subc0 = $subc->get($_POST['idsc2']); if ($subc0) { $subcuenta_cliente->codcliente = $this->cliente->codcliente; $subcuenta_cliente->idsubcuenta = $subc0->idsubcuenta; $subcuenta_cliente->codsubcuenta = $subc0->codsubcuenta; $subcuenta_cliente->codejercicio = $subc0->codejercicio; if ($subcuenta_cliente->save()) { $this->new_message('Datos guardados correctamente.'); } else { $this->new_error_msg('Imposible asignar la subcuenta al cliente.'); } $this->subcuenta = $subc0; } else { $this->new_error_msg('Subcuenta no encontrada.'); } } else { if (isset($_POST['cuenta'])) { $cuenta0 = $this->cuenta->get($_POST['cuenta']); if ($cuenta0) { $subc0 = new subcuenta(); $subc0->codcuenta = $cuenta0->codcuenta; $subc0->coddivisa = $this->default_items->coddivisa(); $subc0->codejercicio = $cuenta0->codejercicio; $subc0->codsubcuenta = $_POST['codsubcuenta']; $subc0->descripcion = $this->cliente->nombre; $subc0->idcuenta = $cuenta0->idcuenta; if ($subc0->save()) { $subcuenta_cliente->codcliente = $this->cliente->codcliente; $subcuenta_cliente->idsubcuenta = $subc0->idsubcuenta; $subcuenta_cliente->codsubcuenta = $subc0->codsubcuenta; $subcuenta_cliente->codejercicio = $subc0->codejercicio; if ($subcuenta_cliente->save()) { $this->new_message('Datos guardados correctamente.'); } else { $this->new_error_msg('Imposible asignar la subcuenta al cliente.'); } $this->subcuenta = $subc0; } else { $this->new_error_msg('Imposible crear la sucuenta.'); } } else { $this->new_error_msg('Cuenta no encontrada.'); } } else { foreach ($subcuenta_cliente->all_from_cliente($_REQUEST['cli']) as $sca) { if ($sca->codejercicio == $this->codejercicio) { $this->subcuenta_a = $sca; $this->subcuenta = $sca->get_subcuenta(); break; } } } } } } } } } else { if (isset($_REQUEST['pro'])) { $this->tipo = 'pro'; $proveedor = new proveedor(); $this->proveedor = $proveedor->get($_REQUEST['pro']); if ($this->proveedor) { $subcuenta_proveedor = new subcuenta_proveedor(); if (isset($_GET['delete_sca'])) { $aux_sca = $subcuenta_proveedor->get2($_GET['delete_sca']); if ($aux_sca) { if ($aux_sca->delete()) { $this->new_message('El proveedor ya no está asocuado a esa subcuenta.'); } else { $this->new_error_msg('Imposible quitar la subcuenta.'); } } else { $this->new_error_msg('Relación con la subcuenta no encontrada.'); } } else { if (isset($_GET['idsc'])) { $this->subcuenta_a = $subcuenta_proveedor->get($_GET['pro'], $_GET['idsc']); if ($this->subcuenta_a) { $this->subcuenta = $this->subcuenta_a->get_subcuenta(); $this->codejercicio = $this->subcuenta_a->codejercicio; } } else { if (isset($_POST['idsc'])) { $this->subcuenta_a = $subcuenta_proveedor->get($_POST['pro'], $_POST['idsc']); if ($this->subcuenta_a) { $subc = new subcuenta(); $subc0 = $subc->get($_POST['idsc2']); if ($subc0) { $this->subcuenta_a->idsubcuenta = $subc0->idsubcuenta; $this->subcuenta_a->codsubcuenta = $subc0->codsubcuenta; $this->subcuenta_a->codejercicio = $subc0->codejercicio; if ($this->subcuenta_a->save()) { $this->new_message('Datos guardados correctamente.'); } else { $this->new_error_msg('Imposible asignar la subcuenta al proveedor.'); } $this->subcuenta = $subc0; } else { $this->new_error_msg('Subcuenta no encontrada.'); $this->subcuenta = $this->subcuenta_a->get_subcuenta(); } } } else { if (isset($_POST['idsc2'])) { $subc = new subcuenta(); $subc0 = $subc->get($_POST['idsc2']); if ($subc0) { $subcuenta_proveedor->codproveedor = $this->proveedor->codproveedor; $subcuenta_proveedor->idsubcuenta = $subc0->idsubcuenta; $subcuenta_proveedor->codsubcuenta = $subc0->codsubcuenta; $subcuenta_proveedor->codejercicio = $subc0->codejercicio; if ($subcuenta_proveedor->save()) { $this->new_message('Datos guardados correctamente.'); } else { $this->new_error_msg('Imposible asignar la subcuenta al cliente.'); } $this->subcuenta = $subc0; } else { $this->new_error_msg('Subcuenta no encontrada.'); } } else { if (isset($_POST['cuenta'])) { $cuenta0 = $this->cuenta->get($_POST['cuenta']); if ($cuenta0) { $subc0 = new subcuenta(); $subc0->codcuenta = $cuenta0->codcuenta; $subc0->coddivisa = $this->default_items->coddivisa(); $subc0->codejercicio = $cuenta0->codejercicio; $subc0->codsubcuenta = $_POST['codsubcuenta']; $subc0->descripcion = $this->proveedor->nombre; $subc0->idcuenta = $cuenta0->idcuenta; if ($subc0->save()) { $subcuenta_proveedor->codproveedor = $this->proveedor->codproveedor; $subcuenta_proveedor->idsubcuenta = $subc0->idsubcuenta; $subcuenta_proveedor->codsubcuenta = $subc0->codsubcuenta; $subcuenta_proveedor->codejercicio = $subc0->codejercicio; if ($subcuenta_proveedor->save()) { $this->new_message('Datos guardados correctamente.'); } else { $this->new_error_msg('Imposible asignar la subcuenta al proveedor.'); } $this->subcuenta = $subc0; } else { $this->new_error_msg('Imposible crear la sucuenta.'); } } else { $this->new_error_msg('Cuenta no encontrada.'); } } else { foreach ($subcuenta_proveedor->all_from_proveedor($_REQUEST['pro']) as $sca) { if ($sca->codejercicio == $this->codejercicio) { $this->subcuenta_a = $sca; $this->subcuenta = $sca->get_subcuenta(); break; } } } } } } } } } } } }
private function informe_compras_unidades() { $sql = "SELECT f.codproveedor,f.fecha,l.referencia,SUM(l.cantidad) as total" . " FROM facturasprov f, lineasfacturasprov l" . " WHERE f.idfactura = l.idfactura AND l.referencia IS NOT NULL" . " AND f.fecha >= " . $this->empresa->var2str($_POST['desde']) . " AND f.fecha <= " . $this->empresa->var2str($_POST['hasta']); if ($_POST['codserie'] != '') { $sql .= " AND f.codserie = " . $this->empresa->var2str($_POST['codserie']); } if ($_POST['codagente'] != '') { $sql .= " AND f.codagente = " . $this->empresa->var2str($_POST['codagente']); } if ($_POST['codproveedor'] != '') { $sql .= " AND codproveedor = " . $this->empresa->var2str($_POST['codproveedor']); } if ($_POST['minimo'] != '') { $sql .= " AND l.cantidad > " . $this->empresa->var2str($_POST['minimo']); } $sql .= " GROUP BY f.codproveedor,f.fecha,l.referencia ORDER BY f.codproveedor ASC, l.referencia ASC, f.fecha DESC;"; $data = $this->db->select($sql); if ($data) { $this->template = FALSE; header("content-type:application/csv;charset=UTF-8"); header("Content-Disposition: attachment; filename=\"informe_compras_unidades.csv\""); echo "codproveedor;nombre;referencia;año;ene;feb;mar;abr;may;jun;jul;ago;sep;oct;nov;dic;total;%VAR\n"; $proveedor = new proveedor(); $stats = array(); foreach ($data as $d) { $anyo = date('Y', strtotime($d['fecha'])); $mes = date('n', strtotime($d['fecha'])); if (!isset($stats[$d['codproveedor']][$d['referencia']][$anyo])) { $stats[$d['codproveedor']][$d['referencia']][$anyo] = array(1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 0, 10 => 0, 11 => 0, 12 => 0, 13 => 0, 14 => 0); } $stats[$d['codproveedor']][$d['referencia']][$anyo][$mes] += floatval($d['total']); $stats[$d['codproveedor']][$d['referencia']][$anyo][13] += floatval($d['total']); } foreach ($stats as $i => $value) { $pro = $proveedor->get($i); foreach ($value as $j => $value2) { /// calculamos la variación $anterior = 0; foreach (array_reverse($value2, TRUE) as $k => $value3) { if ($anterior > 0) { $value2[$k][14] = $value3[13] * 100 / $anterior - 100; } $anterior = $value3[13]; } foreach ($value2 as $k => $value3) { if ($pro) { echo '"' . $i . '";' . $this->fix_html($pro->nombre) . ';"' . $j . '";' . $k; } else { echo '"' . $i . '";-;"' . $j . '";' . $k; } foreach ($value3 as $value4) { echo ';' . number_format($value4, FS_NF0, ',', ''); } echo "\n"; } echo ";;;;;;;;;;;;;;;\n"; } echo ";;;;;;;;;;;;;;;\n"; } } else { $this->new_error_msg('Sin resultados.'); } }
protected function private_core() { /// ¿El usuario tiene permiso para eliminar en esta página? $this->allow_delete = $this->user->allow_delete_on(__CLASS__); $this->ppage = $this->page->get('compras_facturas'); $this->agente = FALSE; $this->divisa = new divisa(); $this->ejercicio = new ejercicio(); $factura = new factura_proveedor(); $this->factura = FALSE; $this->forma_pago = new forma_pago(); $this->proveedor = FALSE; $this->rectificada = FALSE; $this->rectificativa = FALSE; $this->serie = new serie(); /** * Si hay alguna extensión de tipo config y texto no_button_pagada, * desactivamos el botón de pagada/sin pagar. */ $this->mostrar_boton_pagada = TRUE; foreach ($this->extensions as $ext) { if ($ext->type == 'config' and $ext->text == 'no_button_pagada') { $this->mostrar_boton_pagada = FALSE; break; } } if (isset($_POST['idfactura'])) { $this->factura = $factura->get($_POST['idfactura']); $this->modificar(); } else { if (isset($_GET['id'])) { $this->factura = $factura->get($_GET['id']); } } if ($this->factura) { $this->page->title = $this->factura->codigo; /// cargamos el agente if (!is_null($this->factura->codagente)) { $agente = new agente(); $this->agente = $agente->get($this->factura->codagente); } /// cargamos el proveedor $proveedor = new proveedor(); $this->proveedor = $proveedor->get($this->factura->codproveedor); if (isset($_GET['gen_asiento']) and isset($_GET['petid'])) { if ($this->duplicated_petition($_GET['petid'])) { $this->new_error_msg('Petición duplicada. Evita hacer doble clic sobre los botones.'); } else { $this->generar_asiento($this->factura); } } else { if (isset($_REQUEST['pagada'])) { $this->pagar($_REQUEST['pagada'] == 'TRUE'); } else { if (isset($_POST['anular'])) { $this->anular_factura(); } } } if ($this->factura->idfacturarect) { $this->rectificada = $factura->get($this->factura->idfacturarect); } else { $this->get_factura_rectificativa(); } /// comprobamos la factura $this->factura->full_test(); } else { $this->new_error_msg("¡Factura de proveedor no encontrada!"); } }
protected function process() { $this->ppage = $this->page->get('compras_proveedores'); $this->cuenta_banco = new cuenta_banco_proveedor(); $this->divisa = new divisa(); $this->forma_pago = new forma_pago(); $this->pais = new pais(); $this->serie = new serie(); /// ¿El usuario tiene permiso para eliminar en esta página? $this->allow_delete = $this->user->allow_delete_on(__CLASS__); /// cargamos el proveedor $proveedor = new proveedor(); $this->proveedor = FALSE; if (isset($_POST['codproveedor'])) { $this->proveedor = $proveedor->get($_POST['codproveedor']); } else { if (isset($_GET['cod'])) { $this->proveedor = $proveedor->get($_GET['cod']); } } /// ¿Hay que hacer algo más? if (isset($_GET['delete_cuenta'])) { $cuenta = $this->cuenta_banco->get($_GET['delete_cuenta']); if ($cuenta) { if ($cuenta->delete()) { $this->new_message('Cuenta bancaria eliminada correctamente.'); } else { $this->new_error_msg('Imposible eliminar la cuenta bancaria.'); } } else { $this->new_error_msg('Cuenta bancaria no encontrada.'); } } else { if (isset($_GET['delete_dir'])) { $dir = new direccion_proveedor(); $dir0 = $dir->get($_GET['delete_dir']); if ($dir0) { if ($dir0->delete()) { $this->new_message('Dirección eliminada correctamente.'); } else { $this->new_error_msg('Imposible eliminar la dirección.'); } } else { $this->new_error_msg('Dirección no encontrada.'); } } else { if (isset($_POST['coddir'])) { $direccion = new direccion_proveedor(); if ($_POST['coddir'] != '') { $direccion = $direccion->get($_POST['coddir']); } $direccion->apartado = $_POST['apartado']; $direccion->ciudad = $_POST['ciudad']; $direccion->codpais = $_POST['pais']; $direccion->codpostal = $_POST['codpostal']; $direccion->codproveedor = $this->proveedor->codproveedor; $direccion->descripcion = $_POST['descripcion']; $direccion->direccion = $_POST['direccion']; $direccion->direccionppal = isset($_POST['direccionppal']); $direccion->provincia = $_POST['provincia']; if ($direccion->save()) { $this->new_message("Dirección guardada correctamente."); } else { $this->new_error_msg("¡Imposible guardar la dirección!"); } } else { if (isset($_POST['iban'])) { if (isset($_POST['codcuenta'])) { $cuentab = $this->cuenta_banco->get($_POST['codcuenta']); } else { $cuentab = new cuenta_banco_proveedor(); $cuentab->codproveedor = $this->proveedor->codproveedor; } $cuentab->descripcion = $_POST['descripcion']; if ($_POST['ciban'] != '') { $cuentab->iban = $this->calcular_iban($_POST['ciban']); } else { $cuentab->iban = $_POST['iban']; } $cuentab->swift = $_POST['swift']; if ($cuentab->save()) { $this->new_message('Cuenta bancaria guardada correctamente.'); } else { $this->new_error_msg('Imposible guardar la cuenta bancaria.'); } } else { if (isset($_POST['codproveedor'])) { $this->proveedor->nombre = $_POST['nombre']; $this->proveedor->razonsocial = $_POST['razonsocial']; $this->proveedor->cifnif = $_POST['cifnif']; $this->proveedor->telefono1 = $_POST['telefono1']; $this->proveedor->telefono2 = $_POST['telefono2']; $this->proveedor->fax = $_POST['fax']; $this->proveedor->email = $_POST['email']; $this->proveedor->web = $_POST['web']; $this->proveedor->observaciones = $_POST['observaciones']; $this->proveedor->codserie = $_POST['codserie']; $this->proveedor->codpago = $_POST['codpago']; $this->proveedor->coddivisa = $_POST['coddivisa']; $this->proveedor->regimeniva = $_POST['regimeniva']; $this->proveedor->acreedor = isset($_POST['acreedor']); if ($this->proveedor->save()) { $this->new_message('Datos del proveedor modificados correctamente.'); } else { $this->new_error_msg('¡Imposible modificar los datos del proveedor!'); } } } } } } if ($this->proveedor) { $this->page->title = $this->proveedor->codproveedor; } else { $this->new_error_msg("¡Proveedor no encontrado!"); } }
private function informe_proveedores() { $informe = array('filas' => array(), 'totales' => array(0, 0, 0, 0, 0)); if (strtolower(FS_DB_TYPE) == 'postgresql') { $data = $this->db->select("SELECT codproveedor, to_char(fecha,'FMMM') as mes, sum(total) as total\n FROM facturasprov WHERE to_char(fecha,'FMYYYY') = " . $this->ejercicio->var2str($this->sejercicio) . "\n GROUP BY codproveedor, to_char(fecha,'FMMM') ORDER BY codproveedor;"); } else { $data = $this->db->select("SELECT codproveedor, DATE_FORMAT(fecha, '%m') as mes, sum(total) as total\n FROM facturasprov WHERE DATE_FORMAT(fecha, '%Y') = " . $this->ejercicio->var2str($this->sejercicio) . "\n GROUP BY codproveedor, DATE_FORMAT(fecha, '%m') ORDER BY codproveedor;"); } $fila = array('codproveedor' => '', 'proveedor' => '', 't1' => 0, 't2' => 0, 't3' => 0, 't4' => 0, 'total' => 0); if ($data) { foreach ($data as $d) { if ($fila['codproveedor'] == '') { $fila['codproveedor'] = $d['codproveedor']; } else { if ($d['codproveedor'] != $fila['codproveedor']) { if ($fila['total'] > $this->cantidad) { $informe['filas'][] = $fila; } $fila['codproveedor'] = $d['codproveedor']; $fila['t1'] = 0; $fila['t2'] = 0; $fila['t3'] = 0; $fila['t4'] = 0; $fila['total'] = 0; } } if (in_array($d['mes'], array('1', '2', '3', '01', '02', '03'))) { $fila['t1'] += floatval($d['total']); } else { if (in_array($d['mes'], array('4', '5', '6', '04', '05', '06'))) { $fila['t2'] += floatval($d['total']); } else { if (in_array($d['mes'], array('7', '8', '9', '07', '08', '09'))) { $fila['t3'] += floatval($d['total']); } else { $fila['t4'] += floatval($d['total']); } } } $fila['total'] = $fila['t1'] + $fila['t2'] + $fila['t3'] + $fila['t4']; } if ($fila['total'] > $this->cantidad) { $informe['filas'][] = $fila; } $proveedor = new proveedor(); foreach ($informe['filas'] as $i => $value) { $pro0 = $proveedor->get($value['codproveedor']); if ($pro0) { $informe['filas'][$i]['proveedor'] = $pro0; } $informe['totales'][0] += $value['t1']; $informe['totales'][1] += $value['t2']; $informe['totales'][2] += $value['t3']; $informe['totales'][3] += $value['t4']; } $informe['totales'][4] = $informe['totales'][0] + $informe['totales'][1] + $informe['totales'][2] + $informe['totales'][3]; } return $informe; }
protected function private_core() { $this->offset = 0; $this->articulo_s = FALSE; $this->agente = new agente(); $this->tarifas = new tarifas_proveedores(); $this->share_extension(); /// ¿El usuario tiene permiso para eliminar en esta página? $this->allow_delete = $this->user->allow_delete_on(__CLASS__); if (isset($_GET['codproveedor'])) { //Primero seleccionamos proveedor $proveedor = new proveedor(); $this->proveedor = $proveedor->get($_GET['codproveedor']); //Ahora buscamos un articulo if (isset($_REQUEST['buscar_articulo'])) { /// desactivamos la plantilla HTML $this->template = FALSE; $json = array(); $articulo = new articulo(); $this->articulos = $articulo->search($_REQUEST['buscar_articulo']); foreach ($this->articulos as $art) { $json[] = array('value' => $art->descripcion, 'data' => $art->referencia); } header('Content-Type: application/json'); echo json_encode(array('query' => $_REQUEST['buscar_articulo'], 'suggestions' => $json)); } else { if (isset($_POST['tarifa_pvp'])) { $this->nueva_tarifa(); //Luego Seleccionamos las tarifas mas recientes de los articulos para este proveedor $this->tarifas_select = $this->tarifas->get_tarifas_proveedor_select($_GET['codproveedor']); //Por ultimo seleccinamos todas las tarias de precios para este proveedor $this->tarifas_all = $this->tarifas->get_tarifas_proveedor($_GET['codproveedor']); //Para eliminar } else { if (isset($_GET['delete_tarifa'])) { $tarifa = $this->tarifas->get($_GET['delete_tarifa']); if ($tarifa) { if ($tarifa->delete()) { $this->new_message('Tarifa eliminada correctamente.'); } else { $this->new_error_msg('Imposible eliminar la tarifa.'); } } else { $this->new_error_msg('Tarifa no encontrada.'); } //Luego Seleccionamos las tarifas mas recientes de los articulos para este proveedor $this->tarifas_select = $this->tarifas->get_tarifas_proveedor_select($_GET['codproveedor']); //Por ultimo seleccinamos todas las tarias de precios para este proveedor $this->tarifas_all = $this->tarifas->get_tarifas_proveedor($_GET['codproveedor']); } else { //Luego Seleccionamos las tarifas mas recientes de los articulos para este proveedor $this->tarifas_select = $this->tarifas->get_tarifas_proveedor_select($_GET['codproveedor']); //Por ultimo seleccinamos todas las tarias de precios para este proveedor $this->tarifas_all = $this->tarifas->get_tarifas_proveedor($_GET['codproveedor']); } } } } else { $this->new_error_msg('Imposible enseñar tarifas, proveedor no seleccionado.'); } }
protected function private_core() { $this->share_extenstion(); $recibo = new recibo_proveedor(); $this->check_vencimiento = FALSE; $this->desde = ''; $this->estado = ''; $this->hasta = ''; $this->num_pendientes = 0; $this->num_resultados = 0; $this->num_vencidos = 0; $this->proveedor = FALSE; $this->total_resultados = 0; $this->total_resultados_txt = ''; $this->vencimiento = Date('d-m-Y', strtotime('+1month')); if (isset($_REQUEST['buscar_proveedor'])) { $this->buscar_proveedor(); } else { if (isset($_POST['fecha'])) { $this->nuevo_recibo(); } else { if (isset($_REQUEST['id'])) { /// pestaña recibos de una factura $this->template = 'tab_factura_proveedor'; $factura = new factura_proveedor(); $this->factura = $factura->get($_REQUEST['id']); if ($this->factura) { $this->resultados = $recibo->all_from_factura($_REQUEST['id']); if (isset($_GET['regenerar'])) { foreach ($this->resultados as $res) { $res->delete(); } $this->factura->pagada = FALSE; $this->factura->save(); $this->sync_factura(TRUE); } $this->pagada_previamente = FALSE; if ($this->factura->pagada and count($this->resultados) == 0) { $this->pagada_previamente = TRUE; } else { $this->sync_factura(TRUE); } } } else { $this->mostrar = 'todo'; if (isset($_GET['mostrar'])) { $this->mostrar = $_GET['mostrar']; } $this->offset = 0; if (isset($_GET['offset'])) { $this->offset = intval($_GET['offset']); } if (isset($_GET['delete'])) { $recibo2 = $recibo->get($_GET['delete']); if ($recibo2) { if ($recibo2->delete()) { $this->new_message('Recibo eliminado correctamente.'); } else { $this->new_message('Error al eliminar el recibo.'); } } else { $this->new_message('Recibo no encontrado.'); } } else { if (!isset($_GET['mostrar']) and isset($_REQUEST['codproveedor'])) { $this->mostrar = 'buscar'; } } if (isset($_REQUEST['codproveedor'])) { if ($_REQUEST['codproveedor'] != '') { $pro0 = new proveedor(); $this->proveedor = $pro0->get($_REQUEST['codproveedor']); } } if (isset($_REQUEST['desde'])) { $this->desde = $_REQUEST['desde']; $this->estado = $_REQUEST['estado']; $this->hasta = $_REQUEST['hasta']; $this->check_vencimiento = isset($_REQUEST['vencimiento']); } $this->order = 'fecha DESC'; if (isset($_GET['order'])) { if ($_GET['order'] == 'fecha_desc') { $this->order = 'fecha DESC'; } else { if ($_GET['order'] == 'fecha_asc') { $this->order = 'fecha ASC'; } else { if ($_GET['order'] == 'fechav_desc') { $this->order = 'fechav DESC'; } else { if ($_GET['order'] == 'fechav_asc') { $this->order = 'fechav ASC'; } else { if ($_GET['order'] == 'codigo_desc') { $this->order = 'codigo DESC'; } else { if ($_GET['order'] == 'codigo_asc') { $this->order = 'codigo ASC'; } } } } } } setcookie('compras_recibos_order', $this->order, time() + FS_COOKIES_EXPIRE); } else { if (isset($_COOKIE['compras_recibos_order'])) { $this->order = $_COOKIE['compras_recibos_order']; } } $this->cron_job(); $this->buscar(); } } } }