Data">
Nothing Special   »   [go: up one dir, main page]

Guia EnterpriceLibrary

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

U.

D “Taller de Programación Web”

GUIA DE LABORATORIO
Sesión 05 del 17 Al 21 abril del 2016

CREACION DE CAPAS
Libreria Microsoft.EnterpriseLibrary

Empleando el modelo por Capas crear


un Proyecto Web que permita generar
una factura ,considerando lo siguiente:

1. Al Hacer click en el botón del


nuevo usuario generara el número
de la factura

2. Al seleccionar el cliente desde el


dropdowlist mostrara dirección y el
código del cliente.
3. Al seleccionar el articulo desde un
dropdownlist mostrara precio, stock,
y su código .
4. Ingrese Cantidad
5. Hacer click en el botón para
agregar el carrito se agrera en
la grilla el producto con los
datos y mostrara el subtotal,igv,total
a pagar

6. Finalmente el botón permitirá grabar la Factura

Pág.# 1 Mg. Gina Huertas Camacho


U.D “Taller de Programación Web”

Empleara la base de datos BDFACTURAS3607 con las siguientes tablas

Procedimientos Almacenados
use BDFACTURAS3607
go

create proc listar_clientes


as
select c.cli_cod, c.cli_nom, c.cli_dir
from Clientes c
go

create proc listar_articulos


as
select a.art_cod, a.art_nom, a.art_pre, a.art_stk
from Articulos a
go

create proc nueva_factura


as
select max(RIGHT(f.fac_num,4))+1 --a partir de la derecha 4 c racteres
from Fac_cabe f
go

create proc grabar_factura


@numero char(5), @cliente char(5),
@vendedor int, @igv numeric(8,2), @tot numeric(10,2)
as
insert into Fac_cabe values(@numero,
GETDATE(),@cliente,'F',@vendedor, @igv, @tot)
go

create proc grabar_detalle


@numero char(5), @articulo char(5),

Pág.# 2 Mg. Gina Huertas Camacho


U.D “Taller de Programación Web”

@cantidad int, @precio money


as
insert into Fac_deta values(@numero,
@articulo, @cantidad, @precio)
go

select * from Fac_cabe


go

select * from Fac_deta


go

create view v_reporte_factura


as
select c.cli_nom, c.cli_dir,
fc.fac_num, fc.fac_fec, fc.fac_igv,fc.fac_tot,
a.art_nom, fd.art_can, fd.art_pre
from Clientes c, Fac_cabe fc, Fac_deta fd, Articulos a
where c.cli_cod=fc.cli_cod and fc.fac_num=fd.fac_num
and fd.art_cod=a.art_cod
--and fc.fac_tipo='F'
go

CREATE proc listar_2


@C char(5)
as
select *
from Clientes c where c.cli_cod=@c

select * from v_reporte_factura


go

select * from Fac_cabe where fac_num='F0051'


select * from Fac_deta where fac_num='F0051'

select * from articulos order by art_nom


go

Pág.# 3 Mg. Gina Huertas Camacho


U.D “Taller de Programación Web”

S
istema.Libreria.Entidad

E_DETALLES.cs
namespace Sistema.Libreria.Entidad
{
public class E_DETALLES
{
public string fac_num { get; set; }
public string art_cod { get; set; }
public int art_can { get; set; }
public double art_pre { get; set; }

public E_DETALLES()
{ }

public E_DETALLES(string num, string art,


int can, double pre)
{
fac_num = num;
art_cod = art;
art_can = can;
art_pre = pre;
}
}
E_FACTURAS.cs
namespace Sistema.Libreria.Entidad
{
public class E_FACTURAS
{
public string fac_num { get; set; }
public string cli_cod { get; set; }
public int ven_cod { get; set; }
public double fac_igv { get; set; }
public double fac_tot { get; set; }

public E_FACTURAS()
{ }

public E_FACTURAS(string num, string cli, int ven,


double igv, double tot)
{
fac_num = num;
cli_cod = cli;
ven_cod = ven;

Pág.# 4 Mg. Gina Huertas Camacho


U.D “Taller de Programación Web”

fac_igv = igv;
fac_tot = tot;
}
}
}
Web.config
<connectionStrings>
<add name="con" connectionString="server=.;database=BDFACTURAS3607;
integrated security=true" providerName="System.Data.SqlClient" />

</connectionStrings>

Sistema.Libreria.Datos

D_ARTICULOS.cs

using Microsoft.Practices.EnterpriseLibrary.Data;//IMPORTAR EL NAME SPACE DE


ENTERPRISE
using System.Data;
using Sistema.Libreria.Entidad;
namespace Sistema.Libreria.Datos
{
public class D_ARTICULOS
{
// creamos una variable de tipo "database que es utilizada por el
enterprise para
// acceder a los objetos de sql
Database db = DatabaseFactory.CreateDatabase("con");

public DataTable Listar_Articulos()


{
return
db.ExecuteDataSet("listar_articulos").Tables[0];
}

public DataSet Listar_Clientes()


{
return
db.ExecuteDataSet("listar_clientes");
}

public DataSet Autocompletar_Clientes(string c)


{
return db.ExecuteDataSet("listar_2", c);
}

Pág.# 5 Mg. Gina Huertas Camacho


U.D “Taller de Programación Web”

}
}

D_CLIENTES.cs
namespace Sistema.Libreria.Datos
{
public class D_CLIENTES
{
Database db = DatabaseFactory.CreateDatabase("con");
public DataSet Listar_Clientes()
{
return
db.ExecuteDataSet("listar_clientes");
}
public DataSet Autocompletar_Clientes(string c)
{
return db.ExecuteDataSet("listar_2",c);
}
}
}

D_DETALLES.cs
using System.Data;
using Sistema.Libreria.Entidad;
using Microsoft.Practices.EnterpriseLibrary.Data;
namespace Sistema.Libreria.Datos
{
public class D_DETALLES
{
Database db =
DatabaseFactory.CreateDatabase("con");

public void Grabar_Detalle(E_DETALLES objDF)


{
db.ExecuteNonQuery("grabar_detalle",
objDF.fac_num, objDF.art_cod,
objDF.art_can, objDF.art_pre);
}
}
}
Pág.# 6 Mg. Gina Huertas Camacho
U.D “Taller de Programación Web”

D_FACTURAS.cs
using System.Data;
using Sistema.Libreria.Entidad;
using Microsoft.Practices.EnterpriseLibrary.Data;

namespace Sistema.Libreria.Datos
{
public class D_FACTURAS
{
Database db =
DatabaseFactory.CreateDatabase("con");
public int nueva_factura()
{
return
Convert.ToInt32(
db.ExecuteScalar("nueva_factura").ToString());
}

public void Grabar_Factura(E_FACTURAS objF)


{
db.ExecuteNonQuery("grabar_factura", objF.fac_num,
objF.cli_cod, objF.ven_cod, objF.fac_igv,
objF.fac_tot);
}
}
}

Sistema.Libreria.Negocios

WebApp_Factura
using System.Data;
using System.Data.SqlClient;
using Sistema.Libreria.Entidad;
using Sistema.Libreria.Negocios;

namespace AppWeb_Facturacion
{
public partial class WebFactura : System.Web.UI.Page
{
N_FACTURAS objFN = new N_FACTURAS();
N_CLIENTES objCN = new N_CLIENTES();
N_ARTICULOS objAN = new N_ARTICULOS();
N_DETALLES objDN = new N_DETALLES();
DataTable dtClientes = new DataTable();
DataTable dtArticulos = new DataTable();
double xtotal = 0;
Pág.# 7 Mg. Gina Huertas Camacho
U.D “Taller de Programación Web”

int nfila = -1;


public string art_cod; public double ximporte;
public int totalfilas; public DataTable table;
public int total, total2; public string nom;

protected void Page_Load(object sender, EventArgs e)


{
if (!Page.IsPostBack)
{
if (Session["carito"] == null)
{
table = new DataTable("table");
totalfilas = table.Rows.Count;
//Ahora le añadiré dos columnas, pero puedes añadir
tantas como quieras.
//A cada columna le indico el nombre y el tipo de columna
(string, int, etc..)
table.Columns.Add(new DataColumn("codigo",
typeof(string)));
table.Columns.Add(new DataColumn("articulo",
typeof(string)));
table.Columns.Add(new DataColumn("cantidad",
typeof(int)));
table.Columns.Add(new DataColumn("precio",
typeof(decimal)));
table.Columns.Add(new DataColumn("total",
typeof(decimal)));
//Ahora creamos filas para que la tabla tenga datos
}
Session["carrito"] = table;
GridView1.DataSource = Session["carrito"];
GridView1.DataBind();
DropDownList1.DataSource = objCN.Listar_Clientes();
DropDownList1.DataTextField = "cli_nom";
DropDownList1.DataValueField = "cli_cod";
DropDownList1.DataBind();

DropDownList2.DataSource = objAN.Listar_Articulos();
DropDownList2.DataTextField = "art_nom";
DropDownList2.DataValueField = "art_cod";
DropDownList2.DataBind();
}
}

protected void DropDownList1_SelectedIndexChanged(object sender,


EventArgs e)
{
lblDireccion.Text =
objCN.Autocompletar_Clientes(DropDownList1.Text).Tables[0].Rows[0]
[3].ToString();
}

Pág.# 8 Mg. Gina Huertas Camacho


U.D “Taller de Programación Web”

protected void DropDownList2_SelectedIndexChanged(object sender,


EventArgs e)
{
lblPrecio.Text =
objAN.Listar_Articulos().Rows[DropDownList2.SelectedIndex][2].ToString();
lblStock.Text =
objAN.Listar_Articulos().Rows[DropDownList2.SelectedIndex][3].ToString();
art_cod =
objAN.Listar_Articulos().Rows[DropDownList2.SelectedIndex][0].ToString();
LBLART_COD.Text = DropDownList2.SelectedValue;
}
Boolean Encontrar_Articulo(string cod)
{
bool encontrado = false;
foreach (GridViewRow fila in GridView1.Rows)
{
if (fila.Cells[0].Text.ToString() == cod)
{
encontrado = true;
break;
}
}
return encontrado;
}
void Mostrar_Totales()
{
total = (int.Parse(lblSubtotal.Text) + total);
lblSubtotal.Text = total.ToString();
lblIgv.Text = ((total / 1.18) * 0.18).ToString("N2"); //N2 Indica
2 decimales
total2 = Convert.ToInt16(decimal.Parse(lblSubtotal.Text) +
Decimal.Parse(lblIgv.Text));
lblTotal.Text = total2.ToString();
}

protected void ImageButton2_Click(object sender, ImageClickEventArgs e)


{
//boton nuevo
imgAgregar.Enabled = true;
ImageButton4.Enabled = true;

lblFactura.Text = "F" + objFN.nueva_factura().ToString("0000");


total = 0;
DropDownList1.SelectedIndex = -1;
lblTotal.Text = "0";
lblSubtotal.Text = "0";
lblIgv.Text = "0";
GridView1.DataSource = null;
GridView1.DataBind();
}

Pág.# 9 Mg. Gina Huertas Camacho


U.D “Taller de Programación Web”

protected void ImageButton4_Click(object sender, ImageClickEventArgs e)


{
//grabar
E_FACTURAS objEF = new E_FACTURAS (lblFactura.Text,
LBLCLI_COD.Text, 1, Convert.ToDouble(lblIgv.Text),
Convert.ToDouble(lblTotal.Text));
N_FACTURAS objFN = new N_FACTURAS();
objFN.Grabar_Factura(objEF);

foreach (GridViewRow fila in GridView1.Rows)


{
E_DETALLES objED = new E_DETALLES(lblFactura.Text,
fila.Cells[0].Text.ToString(),
Convert.ToInt32(fila.Cells[2].Text.ToString()),
Convert.ToDouble(fila.Cells[3].Text.ToString()));

objDN = new N_DETALLES();


objDN.Grabar_Detalle(objED);
}
Response .Write ("Factura Grabada Correctamente");
}

protected void imgAgregar_Click(object sender, ImageClickEventArgs e)


{
if (Encontrar_Articulo(LBLART_COD.Text) == false)
{
int cantidad; decimal precio;
table = (DataTable)Session["carrito"]; DataRow row =
table.NewRow();
row["codigo"] = LBLART_COD.Text;
row["articulo"] = DropDownList2.SelectedItem;
row["cantidad"] = int.Parse(txtCantidad.Text);
row["precio"] = Convert.ToDecimal(lblPrecio.Text);
precio = Convert.ToDecimal(lblPrecio.Text);
cantidad = Convert.ToInt32(txtCantidad.Text);
total = (int)precio * cantidad;
row["total"] = total; table.Rows.Add(row);
Session["carrito"] = table;
GridView1.DataSource = Session["carrito"];
GridView1.DataBind();
}
else
{
Response.Write("Este producto ya fue seleccionado");
}
Mostrar_Totales();

Pág.# 10 Mg. Gina Huertas Camacho


U.D “Taller de Programación Web”

}
}

Pág.# 11 Mg. Gina Huertas Camacho

También podría gustarte