Académique Documents
Professionnel Documents
Culture Documents
Proyecto 1
Un administrador financiero
personal
Capítulo 14
Activos X
Pasivos X
Ingresos X
Gastos X
Tabla Groups
Tipos
A: Activos L: Pasivos
I: Ingresos E: Gastos
Tabla de cuentas principales
Es necesario crear una cuenta principal para cada cuenta de
ingresos, gastos, activos y pasivos que desee utilizar. Esto se
denomina Plan de Cuentas.
Balance de
apertura
Grupo
Balance de cierre
Tipo: A, L, I, E
Tipo de comprobante:
Bancario
Ventas
compras
Fecha de comprobante
Comentarios
Referencia
Primera cuenta principal de débito o
crédito
Importe de débito
Número de documento
Número de serie
Importe de crédito
Begin
End
Return - 100
doreturn:
RETURN 0
Capítulo 16
Transacciones
P_trans
create procedure p_trans
IF isnull(@doc_no,0) = 0
--INSERT--
BEGIN
--SafeGuard : Check if tranaction with same ref# exists. If so dont insert
select @ret = count(*) from tr_header where ref = @ref
if @ret > 0
BEGIN
--raiserror (53000, 1,16)
GOTO doerror
END
IF @@ERROR != 0
begin
GOTO doerror
END
END
Fin de procedimiento
COMMIT TRANSACTION
SELECT 0
GOTO doreturn
doerror:
Rollback TRANSACTION
doreturn:
RETURN 0
SELECT -100
GO
On Transactions For insert…
CREATE TRIGGER insert_mstr
ON transactions for insert
As
Declare @sql varchar(200)
DECLARE @mtype char(1)
DECLARE @amount money
SELECT *
into #temp
from inserted
On Transactions For insert
If @mtype = 'A' or @mtype = 'E'
BEGIN
SELECT @amount = ISNULL(#temp.dr_amount,0) -
ISNULL(#temp.cr_amount,0)
FROM #temp
END
ELSE
BEGIN
SELECT @amount = ISNULL(#temp.cr_amount,0) -
ISNULL(#temp.dr_amount,0)
FROM #temp
END
UPDATE MASTERS
SET closing = closing + @amount
FROM masters, #temp
WHERE ( masters.code_value = #temp.code_value )
On Transactions For update…
CREATE TRIGGER update_mstr ON transactions
for update
as
Declare @sql varchar(200)
DECLARE @mtype char(1)
DECLARE @amount money
SELECT *
into #temp
from inserted
SELECT *
into #t2
from deleted
On Transactions For update…
If @mtype = 'A' or @mtype = 'E'
BEGIN
SELECT @amount =
ISNULL(#temp.dr_amount,0) -
ISNULL(#temp.cr_amount,0)
- ISNULL(#t2.dr_amount,0) +
isnull(#t2.cr_amount ,0)
FROM #temp, #t2
WHERE #temp.code_value = #t2.code_value
END
ELSE
BEGIN
SELECT @amount =
ISNULL(#temp.cr_amount,0) -
ISNULL(#temp.dr_amount,0)
- ISNULL(#t2.cr_amount,0) +
isnull(#t2.dr_amount ,0)
FROM #temp, #t2
WHERE #temp.code_value = #t2.code_value
END
On Transactions For update
UPDATE Masters
SET Closing = Closing + @amount
FROM masters, #temp
WHERE ( masters.code_value =
#temp.code_value )
On Transactions For delete ….
SELECT *
into #temp
from deleted
On Transactions For delete….
UPDATE Masters
SET Closing = isnull(Closing,0)-
(ISNULL(t.dr_amount,0)-
ISNULL(t.cr_amount,0))
FROM masters m, #temp t
WHERE m.code_value = t.code_value
AND m.type in("A","E")
UPDATE Masters
SET Closing = isnull(Closing,0)-
(ISNULL(t.cr_amount,0) - ISNULL(t.dr_amount,0))
FROM masters m, #temp t
WHERE m.code_value = t.code_value
AND m.type in("I","L")
Objetivo
• Mostrar, en una lista, en las que se incluyen
todas las cuentas principales de tarjeta de
crédito, a la vista, o bancarias, que se han
definido en el sistema.
• El usuario selecciona la cuenta financiera
apropiada con la que se desee trabajar y luego
hace clic en un botón Submit. De esta forma se
desplaza hasta la página web de transacciones
que es donde realmente se lleva a cabo el
proceso.
Import
<%@ Import Namespace="System.Data"
%>
<%@ Import
Namespace="System.Data.SqlClient" %>
Variables
<html>
<script language="VB" runat="server">
Dim myConnection As SqlConnection
Dim myCommand As SqlDataAdapter
Dim ds As New DataSet
Dim ConnStr As String
Dim SQL As String
Load
Sub Page_Load(Source As Object, E As
EventArgs)
ConnStr = "Data Source=(local);Initial
Catalog=ASPNET;Integrated Security=True;"
myConnection = New
OleDbConnection(ConnStr)
if NOT (isPostBack)
rebind
end if
End Sub
Submit
Sub SubmitBtn_Click(sender As Object, e As EventArgs)
Session("TheSelectionText")= Selection.SelectedItem.Text
Session("TheSelectionValue")= Selection.SelectedItem.Value
Response.Redirect("Transactions.aspx")
End Sub
Rebind
Sub ReBind()
'DataSetCommand
SQL = "Select * from masters where
code_category in (604,605) order by
code_display"
myCommand = New OleDbDataAdapter(SQL,
myConnection)
'utilice el método Fill de DataSetCommand
para completar el conjunto de datos
myCommand.Fill(ds, "Masters")
Selection.DataSource=ds.Tables("Masters").Def
aultView
Selection.DataBind()
End Sub
Controles
<body>
<h3><font face="Verdana">Financial Account
Selection</font></h3>
<form runat="server" >
Select Cash or Bank Account :</B>
<asp:DropDownList DataTextField = "code_display"
DataValueField = "code_value" id="selection" runat="server" />
<asp:Button text="Go" runat="server" OnClick="SubmitBtn_Click"
/>
</form>
</body>
</html>
Objetivo
• Permite a los usuarios añadir y modificar
registros.
Import
<%@Page Language="VB"
Inherits="BaseClass"
Src="transactions.vb" %>
<%@ Import Namespace="System.Data"
%>
<%@ Import
Namespace="System.Data.SqlClient" %>
Variables
• <html>
• <script language="VB" runat="server">
• Sub Grid1_Update(sender As Object, e As
DataGridCommandEventArgs)
• Dim sql As string
• Dim vdate As String
• Dim ref As String
• Dim code_value As String
• Dim dr_amt As String
• Dim cr_amt As String
• Dim posted_display As String
• Dim id As String
• Dim narr As String
• Dim myTextBox As TextBox
Valor clave
'Éste el el valor clave : Recuperado del DataKey, dado que se trata
de un campo de sólo lectura
Dim doc_no as string =
Grid1.DataKeys.Item(E.Item.ItemIndex).ToString
myTextBox = E.Item.FindControl("edit_date")
vdate = trim(mytextbox.text)
myTextBox = E.Item.FindControl("edit_ref")
ref = trim(mytextbox.text)
myTextBox = E.Item.FindControl("edit_dr_amt")
dr_amt = trim(mytextbox.text)
myTextBox = E.Item.FindControl("edit_cr_amt")
cr_amt = trim(mytextbox.text)
myTextBox = E.Item.FindControl("edit_posted_display")
posted_display= trim(mytextbox.text)
myTextBox = E.Item.FindControl("edit_narr")
narr = trim(mytextbox.text)
Procedimiento almacenado
'Ahroa ejecute el procedimiento almacenado