sistema contable base de datos postgresql

24
Diseño Base De Datos 12/122022 INFORME PROYECTO FINAL David Castro 200960520006

Upload: ahmed-castro

Post on 24-Dec-2015

132 views

Category:

Documents


3 download

DESCRIPTION

SQL

TRANSCRIPT

Page 1: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

12/122023

INFORME PROYECTO FINAL

David Castro 200960520006

Page 2: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

INTRODUCCION

El siguiente informe es elaborado para dar a conocer el procedimiento que se realizó para crear el motor de base de datos de un sistema contable.

Es importante mencionar que previo a realizar el proyecto se investigó sobre la Contabilidad empresarial y dicha información y términos se detallaran en el informe.

También se muestra la lógica que se utilizó, la creación de las tablas donde se guardaran los datos, la determinación que se dio para la relación entre las tablas, las llaves locales y foráneas, las distintas funciones que se realizaron para ingresar, modificar y realizar operaciones lógicas con los datos.

También cuenta con un cuadro donde muestra el código que pertenece a cada tipo de cuenta, muestra imágenes desde el motor de base de datos con el resultado al momento de llamar una función, entre otras cosas.

Espero que dicho informe sea de utilidad para todo aquella persona que dese saber no solo de cómo crear un sistema contable si no también como crear bases de datos en el gestor PostgreSQL.

David Castro 2

Diseño Base De Datos

Page 3: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

Contenido

INTRODUCCION..............................................................................................................................................2

Conceptos...........................................................................................................................................................4

Contabilidad...................................................................................................................................................4

Términos Contables........................................................................................................................................4

Sistema Contable................................................................................................................................................5

Elaboración del Sistema Contable......................................................................................................................6

Tabla Cuenta...................................................................................................................................................7

Tabla Tipo......................................................................................................................................................8

Tabla Nivel.....................................................................................................................................................8

PARTIDA EMCABEZADO..........................................................................................................................9

Tabla Moneda...............................................................................................................................................10

PARTIDA DETALLE..................................................................................................................................10

Diagrama de Relación..................................................................................................................................11

QUERY............................................................................................................................................................12

PL/PgSQL....................................................................................................................................................12

Tablas...........................................................................................................................................................12

LLAVES FORANEAS.................................................................................................................................14

FUNCIONES................................................................................................................................................14

Conclusión........................................................................................................................................................18

David Castro 3

Page 4: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

Conceptos

Contabilidad La contabilidad es una disciplina que se encarga de estudiar, medir y analizar en forma teórico-científica la realidad económica, financiera, social y ambiental de una empresa u organización, con el fin de interpretar las situaciones económicas que se derivan de transacciones monetarias, facilitando la toma de decisiones encaminadas hacia el mejoramiento de la productividad, gestión de la empresa u organización, la responsabilidad con el impacto ambiental y el impacto de bienestar social en la comunidad de la que se beneficia la entidad económica en la obtención de utilidad - ganancia, presentando la información contable previamente registrada de manera sistemática según un modelo contable determinado, está información es útil para los distintos grupos de interés que rodean la empresa u organización.

Términos Contables1) Activo: Cualquier cosa con valor comercial, de cambio poseída por un individuo o entidad.2) Activo circulante o corriente: Activo de una empresa que razonablemente puede esperarse

que sean convertido en dinero vendidos o consumidos a lo largo del ciclo normal3) de operaciones.4) Activo fijo: El de ciclo largo destinado a la cantidad productiva mas que a la reventa. Incluye

la planta el equipo y el activo intangible.5) Asiento de cierre: Asiento de diario realizado al final de un periodo contable para cerrar

todas las cuentas de ingresos, gastos y otras cuentas del periodo.6) Acreditar: Registrar un crédito mediante un asiento de contabilidad.7) Balance general: Estado  de la situación financiera de cualquier unidad económica, que8) muestren en un momento determinado el activo, al costo, al costo de preciado o a otro valor

indicado.9) Capital: Activos netos de una empresa, sociedad o figura semejante, incluyendo10) la inversión original y todas las ganancias y beneficios sobre la misma. Cantidad invertida en

la empresa.11) Cuenta: Registro de todas las transacciones y de la fecha de cada una de ella que afecta una

fase particular de una empresa. Se expresa en forma de cargo y abonos evaluados en términos monetarios y mostrando en saldo actuar si existe.

12) Costo: Valor cedido por una entidad para la obtención de bienes o servicios. Todos los gastos son costos pero no todos los costos son gastos.

13) Crédito: Parte de un asiento registrado en el lado derecho del diario de la cuenta14) mayor. Ventas o compras acompañadas de una promesa de pago posterior a la fecha en que se

realizan.15) Estado financiero: Balance general, un estado de ingresos (o resultados); un estado de fondo

o cualquier estado auxiliar u otra presentación de datos financieros derivados de16) los registros de contabilidad.17) Pasivo: Los fondos que debe un banco. El pasivo más grande para un banco son los depósitos

de sus clientes.18) Pasivo Circulante: Parte del pasivo que vence antes de un año. Incluye proveedores,19) hacienda pública, seguridad social y acreedores bancarios o varios a cortó plazo.20) Pasivo fijo: Todas la deudas que no vencen dentro del periodos fiscal subsiguiente (por

ejemplo hipotecas, bono en circulación)21) Capital contable: total de las participaciones que aparece en el registro de contabilidad

representado en interés del propietario.

David Castro 4

Page 5: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

22) Capital social: Capital aportado por accionista para constituir el patrimonio social quien les otorga sus derechos sociales.

23) Capital suscrito: El aportado por los socios. Marca la verdadera  responsabilidad de los accionistas.

24) Capital pagado: Cantidad total en efectivo, en propiedades y en servicios que aportan a una corporación  o sociedad sus accionistas y que generalmente constituye una partida importante en el balance general.

25) Cuentas por pagar: Pasivo representado de la cantidad que debe un individuo o empresa a un acreedor por las adquisiciones de mercancía o servicios, basándose en un sistema de cuenta corriente o crédito a corto plazo.

26) Cuentas por cobrar: Las que se adeudan a una empresa por las ventas de mercancía,Basándose en un sistema de cuentas corrientes.

27) Inventario: Materia prima y materiales, abastecimientos  oSuministros, productos terminados y en procesos de fabricación y mercancía en existencia, en tránsito, en depósito o consignada en poder de terceros.

Sistema Contable

Un sistema contable, son todos aquellos elementos de información contable y financiera que se relacionan entre sí, con el fin de apoyar la toma de decisiones gerenciales de una empresa, de manera eficiente y oportuna; pero esta información debe ser analizada, clasificada, registrada (Libros correspondientes: Diario, mayor, Auxiliares, etc.) y resumida (Estados financieros), para que pueda llegar a un sin número de usuarios finales que se vinculan con el negocio, desde los inversionistas o dueños del negocio, hasta los clientes y el gobierno.

Por lo tanto, el sistema contable, debe ajustarse plenamente a las necesidades de la empresa, considerando, el giro del negocio y su estrategia competitiva, que permita estandarizar procesos, definir estructuras de costos y por ende, presentar una información contable estandarizada que facilite su interpretación, una eficiente toma de decisiones y que pueda procesarse para realizar los diferentes análisis financieros del negocio.

David Castro 5

Page 6: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

Elaboración del Sistema Contable

Para la elaboración se utilizó el gestor de base de datos PostgreSQl y se realizó mediante los siguientes pasos:

Creación de una base de datos llamada Proyecto y las tablas Cuenta, Moneda, Nivel, Partida_detalle, Partida_Encabezado y Tipo :

David Castro 6

Page 7: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

Tabla CuentaDentro de esta tabla se guarda todos los datos necesarios para documentar una cuenta, para saber el tipo de una cuenta se crearon las tablas Tipo y Nivel con los datos siguientes:

CUENTASCODIGO TIPO CODIGO_NIVEL NIVEL DESCRIPCION

100 ACTIVO

1001 Circulante

Caja BancosClientes

Documentos por cobrarDeudores Diversos

Almacén

1002 Fijo

Equipo de oficinaEdificiosTerrenos

Equipo de repartoPatentes y marcas

Depósitos en garantíaDeudores hipotecarios

Acciones, bonos y valoresPapelería y artículos escritorio

Propaganda y publicidad

1003 Cargos diferidos

Primas de Seguros adelantadosGastos de instalación

Rentas anticipadasIntereses pagados por anticipado

200 PASIVO

2001 Circulante

ProveedoresAcreedores

Impuestos por pagarDocumentos por pagar

2002 Fijo Documentos por pagar a largo plazoAcreedores hipotecarios

2003 Créditos diferidos Rentas cobradas por adelantado Intereses cobrados anticipadamente

300 CAPITAL 3000 Capital

VentasCosto de ventas

Gastos de VentasGastos de Administración

Gastos y productos financierosOtros gastos y productosImpuesto sobre la renta

Pérdidas y gananciasCapital

David Castro 7

Page 8: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

Además del código, el nivel y el tipo la tabla cuenta con el campo Nombre que detalla el nombre de la cuenta y una descripción.

Para ingresar los datos a esta tabla se creó una función llamada validar_monto (abajo se detalla el query) .

Tabla TipoEsta tabla solo contiene el código del tipo de cuenta y la descripción ya sea Activo, Pasivo o Capital está relacionada con la tabla Cuenta mediante el campo codigo_tipo, esta relación ayuda a determinar de qué tipo de cuenta es la cuenta y si el monto es debe o haber:

Tabla NivelEn esta tabla se detalla el nivel del monto ya circulante, fijo, cargos diferidos, fijo, créditos diferidos, capital.

Está relacionada con la tabla Cuenta mediante el campo Codigo_nivel, en el campo de descripción esta detallado las diferentes transacciones para cada nombre.

David Castro 8

Page 9: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

Los query de llaves foranes se detalla abajo

PARTIDA EMCABEZADOEsta Tabla es una de las más importantes del sistema ya que en ella se realizan las partidas diarias de la contabilidad, en ella se guarda el número de partida que inicia desde 100 este campo se programó mediante un check, el código de la cuenta con esto nos indica que está relacionada con la tabla Cuenta mediante este campo, el código de tipo cuenta dato proporcionado por la tabla cuenta, la fecha en que se está realizando la partida, el concepto, el código de moneda este está relacionado con la tabla moneda, el monto, la conversión de la moneda, el debe, el haber y el saldo total.

Para realizar el ingreso de datos en esta cuenta se creó una función llamada actualizar_emcabezadoque además de ingresar datos, realiza la validación del monto para determinar el debe y el haber y también realiza la conversión de la moneda según sea el tipo de la moneda dato guardado en la tabla moneda.

David Castro 9

Page 10: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

Tabla MonedaEn esta tabla se detalla el tipo de moneda, se ingresó solo cuatro tipo de monedas las más utilizadas, Lempira, Euro, Dólar y Peso, también cuenta con la tasa de cambio que ayuda a realizar la conversión en la tabla Libro Diario, dicha relación está hecha por el campo codigo_moneda

PARTIDA DETALLEJunto a la tabla partida de encabezado esta tabla también es la más importante ya que aquí se realizan las operaciones de todo el sistema contable, se ingresan las partidas y se cuadran, toda esta operación se realiza solo con una función llamada ingresar_detalle esta función como su nombre lo dice realiza el ingreso de cada partida a cuadrar, el monto ya sea debe o haber y automáticamente se obtiene el resultado y se coloca en la celda saldo deudor o acreedor según sea el caso:

Diagrama de Relación

David Castro 10

Page 11: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

QUERY

Para poder realizar los Query en el motor de base de datos PostgreSQL se tuvo la necesidad de investigar acerca del Lenguaje PL/PgSQL.

David Castro 11

Page 12: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

PL/PgSQL.

PL/pgSQL (Procedural Language/PostgreSQL Structured Query Language) es un lenguaje imperativo provisto por el gestor de base de datos PostgreSQL. Permite ejecutar comandos SQL mediante un lenguaje de sentencias imperativas y uso de funciones, dando mucho más control automático que las sentencias SQL básicas.

Desde PL/pgSQL se pueden realizar cálculos complejos y crear nuevos tipos de datos de usuario. Como un verdadero lenguaje de programación, dispone de estructuras de control repetitivas y condicionales, además de la posibilidad de creación de funciones que pueden ser llamadas en sentencias SQL normales o ejecutadas en eventos de tipo disparador (trigger).

Una de las principales ventajas de ejecutar programación en el servidor de base de datos es que las consultas y el resultado no tienen que ser transportadas entre el cliente y el servidor, ya que los datos residen en el propio servidor. Además, el gestor de base de datos puede planificar optimizaciones en la ejecución de la búsqueda y actualización de datos.

Las funciones escritas en PL/pgSQL aceptan argumentos y pueden devolver valores de tipo básico o de tipo complejo (por ejemplo, registros, vectores, conjuntos o incluso tablas),

Permitiéndose tipificación polimórfica para funciones abstractas o genéricas (referencia a variables de tipo objeto).

Los Query que se utilizaron para la creación de tablas, llaves foráneas, locales y funciones son los siguientes:

Tablas CUENTA

CREATE TABLE cuenta( codigo integer NOT NULL, codigo_tipo integer NOT NULL, codigo_nivel integer NOT NULL, nombre character varying(500), descripcion character varying(1000), CONSTRAINT pk_codigo PRIMARY KEY (codigo), CONSTRAINT fk_codigo_nivel FOREIGN KEY (codigo_nivel) REFERENCES nivel (codigo_nivel) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT fk_codigo_tipo FOREIGN KEY (codigo_tipo) REFERENCES tipo (codigo_tipo) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION)

NIVELCREATE TABLE nivel( codigo_nivel integer NOT NULL, nombre character varying(50), descripcion character varying(1000),

David Castro 12

Page 13: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

CONSTRAINT pk_codigo_nivel PRIMARY KEY (codigo_nivel))TIPO

CREATE TABLE tipo

( codigo_tipo integer NOT NULL, nombre character varying(50), CONSTRAINT pk_codigo_tipo PRIMARY KEY (codigo_tipo))PARTIDA EMCABEZADO

CREATE TABLE partida_emcabezado( partida integer NOT NULL, codigo_cuenta integer NOT NULL, codigo_tipo integer, fecha date, concepto character varying(500), codigo_moneda integer NOT NULL, monto numeric(9,2), cambio numeric(9,2), debe numeric(9,2), haber numeric(9,2), CONSTRAINT pk_partida PRIMARY KEY (partida), CONSTRAINT fk_codigo_cuenta FOREIGN KEY (codigo_cuenta) REFERENCES cuenta (codigo) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT fk_codigo_moneda FOREIGN KEY (codigo_moneda) REFERENCES moneda (codigo_moneda) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT libro_diario_partida_check CHECK (partida > 100))

MONEDA

create table Moneda

(Codigo_Moneda int not null,

David Castro 13

Page 14: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

Tipo_Moneda varchar (100),Cambio numeric (4,2),constraint PK_Codigo_Moneda primary key (Codigo_Moneda)

Esta tabla guarda los diferentes tipos de monedas mayormente usados, se le asignó un código para poder referenciarlo en la tabla de partida de encabezado y así poder realizar la conversión

LLAVES FORANEASPARTIDA EMCABEZADO

ALTER TABLE partida_emcabezado ADD CONSTRAINT fk_codigo_moneda FOREIGN KEY (codigo_moneda) REFERENCES moneda (codigo_moneda)ALTER TABLE partida_emcabezado ADD CONSTRAINT fk_codigo_cuenta FOREIGN KEY (codigo_cuenta) REFERENCES cuenta (codigo)TABLA CUENTAS:ALTER TABLE cuenta ADD CONSTRAINT fk_codigo_nivel FOREIGN KEY (codigo_nivel) REFERENCES nivel (codigo_nivel) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION;ALTER TABLE cuenta ADD CONSTRAINT fk_codigo_tipo FOREIGN KEY (codigo_tipo) REFERENCES tipo (codigo_tipo) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION;

FUNCIONESMENU:CREATE OR REPLACE FUNCTION opciones_tipo_cuenta() RETURNS character varying AS$BODY$begin return 'Caja o Bancos=TIPO 100 CIRCULANTE, Equipo de oficina=TIPO 200 FIJO NIVEL 1 ACTIVOS.Proveedores o Acreedores=TIPO 300 CIRCULANTE,Acreedores hipotecarios es FIJO y NIVEL 2 PASIVOS.Gastos ventas de administracion e impuestos estan en NIVEL 3 CAPITAL';end;$BODY$ LANGUAGE plpgsql

EJECUCION: select * from Opciones_Tipo_Cuenta ()

Esta función fue creada para mostrar en pantalla un menú donde indica los tipos de cuentas con su nivel y las descripciones, ayuda para guiar al momento de ingresar los datos.ACTUALIZAR EMCABEZADO

CREATE OR REPLACE FUNCTION actualizar_emcabezado(partida integer, codigo_c integer, codigo_t integer, fecha date, concep character varying, moneda integer, monto numeric) RETURNS void AS

David Castro 14

Page 15: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

$BODY$declare Debe numeric (9,2);declare Haber numeric (9,2);declare Cambio numeric (9,2);begincase codigo_t

when 100 thenif moneda = 2 thencambio = monto * 26.13;Haber = Monto;insert into PARTIDA_EMCABEZADO (Partida, Codigo_Cuenta, Codigo_Tipo, Fecha, Concepto,

Codigo_Moneda, Monto, Cambio, Debe, Haber)values (partida, codigo_c,codigo_t, fecha, concep, moneda, monto,Cambio, debe, haber);end if;if moneda = 3 thencambio = monto * 21.04;Haber = Monto;insert into PARTIDA_EMCABEZADO(Partida, Codigo_Cuenta, Codigo_Tipo, Fecha, Concepto,

Codigo_Moneda, Monto, Cambio, Debe, Haber)values (partida, codigo_c,codigo_t, fecha, concep, moneda, monto,Cambio, debe, haber);end if;if moneda = 4 thencambio = monto * 1.42;Haber = Monto;insert into PARTIDA_EMCABEZADO (Partida, Codigo_Cuenta, Codigo_Tipo, Fecha, Concepto,

Codigo_Moneda, Monto, Cambio, Debe, Haber)values (partida, codigo_c,codigo_t, fecha, concep, moneda, monto,Cambio, debe, haber);end if;

when 200 then

if moneda = 2 thencambio = monto * 26.13;Debe = Monto;insert into PARTIDA_EMCABEZADO(Partida, Codigo_Cuenta, Codigo_Tipo, Fecha, Concepto,

Codigo_Moneda, Monto, Cambio, Debe, Haber)values (partida, codigo_c,codigo_t, fecha, concep, moneda, monto,Cambio, debe, haber);end if;if moneda = 3 thencambio = monto * 21.04;Debe = Monto;insert into PARTIDA_EMCABEZADO(Partida, Codigo_Cuenta, Codigo_Tipo, Fecha, Concepto,

Codigo_Moneda, Monto, Cambio, Debe, Haber)values (partida, codigo_c,codigo_t, fecha, concep, moneda, monto,Cambio, debe, haber);end if;if moneda = 4 thencambio = monto * 1.42;Debe = Monto;insert into PARTIDA_EMCABEZADO(Partida, Codigo_Cuenta, Codigo_Tipo, Fecha, Concepto,

Codigo_Moneda, Monto, Cambio, Debe, Haber)values (partida, codigo_c,codigo_t, fecha, concep, moneda, monto,Cambio, debe, haber);

David Castro 15

Page 16: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

end if;

elseinsert into PARTIDA_EMCABEZADO(Partida, Codigo_Cuenta, Codigo_Tipo, Fecha, Concepto, Codigo_Moneda, Monto, Cambio, Debe, Haber)

values (partida, codigo_c, codigo_t, fecha, concep, moneda, monto,Cambio, debe, haber);end case;end;$BODY$ LANGUAGE plpgsql VOLATILE COST 100;ALTER FUNCTION actualizar_emcabezado(integer, integer, integer, date, character varying, integer, numeric) OWNER TO postgres;

EJECUCION: select ACTUALIZAR_EMCABEZADO (116,6,100, '2014-06-30','DEUDORES VARIOS',3,5000)

En esta función ingresamos todos los valores necesarios para las partidas diarias, también realiza la selección de los montos si son debe o haber y los manda a la casilla correcta y también la conversión automática de la moneda según sea el caso.

INGRESAR DATOS A LA TABLA CUENTA

CREATE OR REPLACE FUNCTION ingresar_cuenta(codigo integer, codigo_t integer, codigo_n integer, nombre character varying, descripcion character varying) RETURNS void AS$BODY$BEGIN INSERT INTO CUENTA (CODIGO,CODIGO_TIPO,CODIGO_NIVEL,NOMBRE,DESCRIPCION)VALUES (CODIGO,CODIGO_T,CODIGO_N,NOMBRE,DESCRIPCION);END;$BODY$ LANGUAGE plpgsql VOLATILE COST 100;ALTER FUNCTION ingresar_cuenta(integer, integer, integer, character varying, character varying) OWNER TO postgres;

EJECUCION: SELECT INGRESAR_CUENTA (7,200,2003,'IDEPOSITOS A GARANTIA','GARANTIA DE SERVICIOS' )

INGRESAR DETALLE:

CREATE OR REPLACE FUNCTION INGRESAR_DETALLE(

David Castro 16

Page 17: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

CODIGO_D INT,CODIGO_P1 INT,CODIGO_P2 INT,HABER NUMERIC (9,2),DEBE NUMERIC (9,2),OBSERVA VARCHAR (100))RETURNS VOID AS$BODY$DECLARE TOTAL NUMERIC (9,2);DECLARE SALDO_D NUMERIC (9,2);DECLARE SALDO_A NUMERIC (9,2);BEGIN

IF DEBE = 0 THENSALDO_D = HABER;INSERT INTO PARTIDA_DETALLE (codigo_detalle , codigo_partida1, codigo_partida2 , haber,debe ,

saldo_deudor ,saldo_acrerdor, observaciones )VALUES (CODIGO_D ,CODIGO_P1,CODIGO_P2,HABER,DEBE ,SALDO_D,SALDO_A,OBSERVA );return;END IF;IF HABER = 0 THENSALDO_A = DEBE;INSERT INTO PARTIDA_DETALLE (codigo_detalle , codigo_partida1, codigo_partida2 , haber,debe ,

saldo_deudor ,saldo_acrerdor, observaciones )VALUES (CODIGO_D ,CODIGO_P1,CODIGO_P2,HABER,DEBE ,SALDO_D,SALDO_A,OBSERVA );return;END IF;

IF HABER>DEBE THENTOTAL = HABER - DEBE;

IF TOTAL<HABER THENSALDO_D = TOTAL;INSERT INTO PARTIDA_DETALLE (codigo_detalle , codigo_partida1, codigo_partida2 , haber,debe ,

saldo_deudor ,saldo_acrerdor, observaciones )VALUES (CODIGO_D ,CODIGO_P1,CODIGO_P2,HABER,DEBE ,SALDO_D,SALDO_A,OBSERVA );return;

END IF;END IF;

TOTAL = DEBE-HABER; SALDO_D = TOTAL;

INSERT INTO PARTIDA_DETALLE (codigo_detalle , codigo_partida1, codigo_partida2 , haber,debe , saldo_deudor ,saldo_acrerdor, observaciones )

VALUES (CODIGO_D ,CODIGO_P1,CODIGO_P2,HABER,DEBE ,SALDO_D,SALDO_A,OBSERVA );

END;$BODY$LANGUAGE 'plpgsql'

EJECUCION: SELECT INGRESAR_DETALLE (1,101,106,6800,4500,'CUENTA CAJA')

Esta función realiza las partidas contables dobles y cuadra las cuentas, ingresa el código de la partida, ingresa la partida uno y la partida do, el haber y el debe, también valida los saldos y los coloca en sus campos ya sea deudor o acreedor.

David Castro 17

Page 18: Sistema Contable Base De Datos PostGreSQL

Diseño Base De Datos

Conclusión

Un sistema de contabilidad si se desea puede ser complejo ya que se requiere mucho conocimiento del tema, se pueden agregar balance general libro diario ect, pero en este proyecto se realizó la investigación necesaria para poder completar operaciones básicas de contabilidad.

Por el lado del motor de base de datos no se tuvieron mayores inconvenientes ya que es muy similar al lenguaje estándar SQL, pero se tuvo que investigar la parte del lenguaje PL/PgSQL ya que no existen los procedimientos en PosgreSQL como tal, solo funciones por lo demás se cumplió con el objetivo.

Saludos

David Castro 18