PRÁCTICA 1 - DIURNO: Actividad de Aprendizaje

Anuncio
PRÁCTICA 1 - DIURNO:
Actividad de Aprendizaje 01
Ing. David Gil
Taller de Programación Web | 2
Desarrolle una aplicación para la Gestión de Venta según las siguientes especificaciones:
1) La información de Clientes y Productos se encuentra almacena en arreglos.
2) La razón social del cliente y la descripción de los productos se cargan dinámicamente en
los controles respectivos.
3) Al seleccionar un cliente o producto de la lista se deben mostrar los demás datos que le
corresponden.
4) El correo electrónico del cliente se ingresa por teclado y se valida que no admita vacíos
y que tenga el formato correcto.
5) La cantidad solicitada no admite vacíos, solo enteros y no debe exceder el stock
disponible.
6) Las compras al crédito están permitidas sólo para clientes sujetos a crédito.
7) Existen recargos adicionales por Entrega a domicilio (S/. 25) y Embalaje (S/. 5)
8) El Total General es igual a la cantidad solicitada por precio unitario más adicional.
9) El descuento es el 2% del Total General solo para compras al contado.
10) El IGV es el 18% del Total General.
11) El Total a Pagar = Total General - Descuento + IGV.
DESARROLLO
Diseño de la Interfaz de Usuario:
Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia
Ing. David Gil
Taller de Programación Web | 3
Principales Controles Utilizados:
Control
DropDownList
Propiedad
Valor
(ID)
ddlCliente
AutoPostBack
True
(ID)
ddlProducto
AutoPostBack
True
(ID)
rblPago
AutoPostBack
True
CheckBoxList
(ID)
cblAdicional
TextBox
(ID)
txtEmail
TextBox
(ID)
txtCredito
Enabled
False
(ID)
txtUnidad
Enabled
False
(ID)
txtPrecio
Enabled
False
(ID)
txtStock
Enabled
False
TextBox
(ID)
txtCantidad
TextBox
(ID)
txtTotG
Enabled
False
(ID)
txtDes
Enabled
False
(ID)
txtIgv
Enabled
False
(ID)
txtStock
Enabled
txtTotP
Label
(ID)
lblMensaje
RequiredFieldValidator
(ID)
RequiredFieldValidator1
ControlToValidate
txtEmail
ErrorMessage
Debe ingresar correo electrónico del
cliente
DropDownList
RadioButtonList
TextBox
TextBox
TextBox
TextBox
TextBox
TextBox
Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia
Ing. David Gil
Taller de Programación Web | 4
RegularExpressionValidator
RequiredFieldValidator
CompareValidator
Button
(ID)
RegularExpressionValidator1
ControlToValidate
txtEmail
ErrorMessage
Verifique el formato del correo
(ID)
RequiredFieldValidator2
ControlToValidate
txtCantidad
ErrorMessage
Debe ingresar una cantidad
(ID)
CompareValidator1
ControlToCompare
txtStock
ControlToValidate
txtCantidad
ErrorMessage
La cantidad no debe exceder el stock
disponible
Operator
LessThanEqual
Type
Integer
(ID)
btoReportar
Code-Behind:
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Web.UI;
System.Web.UI.WebControls;
public partial class Ventas : System.Web.UI.Page
{
string[,] Clientes = { { "Dirome", "Si" }, { "Dino", "No" }, { "Dinabusa",
"Si" }, { "Sonrisas SAC", "No" }, { "Perfumerias Unidas", "Si" } };
string[,] Productos = { { "Laptop HP 530", "Unidad" }, { "Disco duro externo
Sony 1 TB", "Unidad" }, { "Monitor Samsung 17 LCD", "Unidad" }, { "Blue Ray
Sony", "Caja x 50" }, { "Laptop Sony", "Unidad" } };
double[] Precio = { 2500, 500, 800, 20.50, 3500.60 };
int[] Stock = { 20, 10, 5, 15, 5 };
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
for (int i = 0 ; i<5; i++)
ddlCliente.Items.Add(Clientes[i,0]);
for (int j = 0; j < 5; j++)
ddlProducto.Items.Add(Productos[j, 0]);
}
}
protected void ddlCliente_SelectedIndexChanged(object sender, EventArgs e)
{
Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia
Ing. David Gil
Taller de Programación Web | 5
txtCredito.Text = Clientes[ddlCliente.SelectedIndex, 1];
}
protected void ddlProducto_SelectedIndexChanged(object sender, EventArgs e)
{
txtUnidad.Text = Productos[ddlProducto.SelectedIndex, 1];
txtPrecio.Text = Precio[ddlProducto.SelectedIndex].ToString();
txtStock.Text = Stock[ddlProducto.SelectedIndex].ToString();
}
protected void rblPago_SelectedIndexChanged(object sender, EventArgs e)
{
foreach (ListItem li in rblPago.Items)
{
if (li.Selected && li.Value == "Credito" && txtCredito.Text == "No")
{
lblMensaje.Text = "Este cliente no es sujeto de crédito";
li.Selected = false;
}
else
lblMensaje.Text = "";
}
}
protected void btoReportar_Click(object sender, EventArgs e)
{
double totgen, totpag, descuento=0, igv=0;
int adicional=0, a1=0, a2=0;
foreach (ListItem li in cblAdicional.Items)
{
if (li.Selected)
{
if (li.Value == "Domicilio")
a1 = 25;
else
a2 = 5;
}
}
adicional = a1 + a2;
totgen = Convert.ToDouble(txtPrecio.Text) *
Convert.ToInt16(txtCantidad.Text)+adicional;
txtTotG.Text = totgen.ToString();
foreach (ListItem opcion in rblPago.Items)
{
if (opcion.Selected && opcion.Value == "Contado")
descuento = totgen * 0.02;
}
txtDes.Text = descuento.ToString();
igv = totgen * 0.18;
txtIgv.Text = igv.ToString();
totpag = totgen + igv - descuento;
txtTotP.Text = totpag.ToString();
}
}
Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia
Ing. David Gil
Taller de Programación Web | 6
Código a escribir en el archivo Global.asax:
void Application_Start(object sender, EventArgs e)
{
// Código que se ejecuta al iniciarse la aplicación
ScriptManager.ScriptResourceMapping.AddDefinition("jquery",
new ScriptResourceDefinition
{
Path = "~/Scripts/jquery-1.10.2.min.js",
DebugPath = "~/Scripts/jquery-1.10.2.js",
CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery1.10.2.min.js",
CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery1.10.2.js"
});
}
Despliegue en el browser:
Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia
Ing. David Gil
Descargar