protected function process() { $this->asiento = FALSE; $this->ppage = $this->page->get('contabilidad_asientos'); $this->divisa = new divisa(); $this->ejercicio = new ejercicio(); $this->impuesto = new impuesto(); $this->subcuenta = new subcuenta(); //// regreso de asiento a la solapa correspondiente if (isset($_GET['solapa'])) { if ($_GET['solapa'] == 'may') { $this->solapa = '&mayorizados=TRUE'; } if ($_GET['solapa'] == 'des') { $this->solapa = '&descuadrados=TRUE'; } if ($_GET['solapa'] == 'all') { $this->solapa = ''; } } /////////////////////////////////////// /// ¿El usuario tiene permiso para eliminar en esta página? $this->allow_delete = $this->user->allow_delete_on(__CLASS__); $asiento = new asiento(); if (isset($_GET['id'])) { $this->asiento = $asiento->get($_GET['id']); } /* print '<script language="JavaScript">'; print 'alert(" id partida : '.$this->asiento->codejercicio.' id asiento '.$this->asiento->idasiento.' ");'; print '</script>'; */ if (isset($this->asiento->tipodocumento)) { if ($this->asiento->tipodocumento == 'Ingreso proveedor') { $this->factura_prov = new factura_proveedor(); $this->factura_prov->codejercicio = $this->asiento->codejercicio; $this->factura_prov->idasiento = $this->asiento->idasiento; $this->resultados1 = $this->factura_prov->facturas_proveedor(); } else { if ($this->asiento->tipodocumento == 'Ingreso') { $this->factura_cli = new factura_cliente(); $this->factura_cli->codejercicio = $this->asiento->codejercicio; $this->factura_cli->idasiento = $this->asiento->idasiento; $this->resultados1 = $this->factura_cli->facturas_cliente(); } } } if (isset($_GET['genlibro'])) { if ($_GET['genlibro'] == 1) { $idasiento = $_GET['idasiento']; $this->asiento->mayorizado = 1; $this->asiento->editable = 0; $may_corr = 0; $may_inco = 1; if ($this->asiento->save()) { $libro_mayor = new libro_mayor(); $partida = new partida(); $asiento_all = new asiento(); $asientos_ejer = $asiento_all->all_por_ejercicio($this->asiento->codejercicio); foreach ($asientos_ejer as $ext) { // suma por sub cuenta // SELECT codsubcuenta,sum(`debe`),sum(`haber`) FROM `co_partidas` WHERE `libromayor`=1 group by codsubcuenta // partida $libro_mes = substr($ext->fecha, 3, 2); if ($partida->marca_libro_idasiento($ext->idasiento, $libro_mes, $this->asiento->codejercicio)) { $may_corr = 1; } else { $may_inco = 0; } } } if ($may_corr * $may_inco == 1) { $this->new_message('Mayorizado correcto.'); } else { $this->new_message('Imposible Mayorizar.'); } } } //////// if (isset($_GET['anu_may'])) { $idasiento = $_GET['anu_may']; $may_corr = 0; $may_inco = 1; $libro_mayor = new libro_mayor(); $partida = new partida(); $asiento_all = new asiento(); $asientos_ejer = $asiento_all->all_por_ejercicio($this->asiento->codejercicio); foreach ($asientos_ejer as $ext) { $libro_mes = substr($ext->fecha, 3, 2); if ($partida->marca_libro_idasiento($idasiento, '0', '0')) { $may_corr = 1; } else { $may_inco = 0; } } if ($may_corr * $may_inco == 1) { $this->asiento->mayorizado = 0; $this->asiento->editable = 1; if ($this->asiento->save()) { $this->new_message('Mayorizado Anulado.'); } } else { $this->asiento->mayorizado = 1; $this->asiento->editable = 0; $this->asiento->save(); $this->new_message('Imposible Anular Mayorizado.'); } } /////////// if (isset($_POST['fecha']) and isset($_POST['query'])) { $this->new_search(); } else { if ($this->asiento) { $this->page->title = 'Asiento: ' . $this->asiento->numero; ////// if (isset($_GET['bloquear'])) { $this->asiento->editable = FALSE; if ($this->asiento->bloquear_on_off()) { $this->new_message('Asiento bloqueado correctamente.'); } else { $this->new_error_msg('Imposible bloquear el asiento.'); } } else { if (isset($_GET['desbloquear'])) { $this->asiento->editable = TRUE; if ($this->asiento->bloquear_on_off()) { $this->new_message('Asiento desbloqueado correctamente.'); } else { $this->new_error_msg('Imposible desbloquear el asiento.'); } } } //// if (isset($_POST['fecha']) and $this->asiento->editable) { $this->modificar(); } /// comprobamos el asiento $this->asiento->full_test(); $this->lineas = $this->get_lineas_asiento(); $partida = new partida(); $valores = $partida->totales_from_asiento($this->asiento->idasiento); $this->suma_debe = $valores['debe']; $this->suma_haber = $valores['haber']; $this->saldo = $valores['saldo']; // $this->comprobante = $valores['comprobante']; // $this->referencia = $valores['referencia']; } else { $this->new_error_msg("Asiento no encontrado."); } } }