Vous êtes sur la page 1sur 45

INETELIGENCIA DE NEGOCIOS Anlisis y cambios de la Base de Datos 1. Anlisis de la tablas reas 1.1.

Error: Al analizar el diagrama vemos que la tabla reas est relacionada entre si con los siguientes campos (ARE_IDEN con ARE_REFE) lo que se podra concluir es que en esta tabla reas hay sub reas que pertenecen a una rea en general.

1.2. Solucin: Al analizar la solucin que se da es eliminar esa relacin ya que no se necesaria ya que todos los campos que estn hay deberan de ser reas y no sub reas ya que esos no se repiten y adems eliminamos la columna ARE_REFE

2. Anlisis del Tabla Artculos 2.1. Analizando la tabla artculos y revisando uno por uno los campos que esta tiene y las relaciones que existen entre ellos como por ejemplo sus claves forneas:

Se pudo analizar que la tabla Artculos estaba relacionada con la tabla Interventores, hay dos campos (ART_CREA y ART_ACTU) de la tabla Artculos que se Relaciona con un solo campo(INT_CERU) de la tabla Interventores, a primera vista se analiz que estaba mal esta relacin pero yendo a ver los datos que tena cada uno de los campos es necesario esta relacin puesto a que el campo ART_CREA tiene la cedula de la persona quien creo el articulo y ART_ACTU tiene la cedula de la persona que actualizo los artculos, y esta cedula est depositada en el campo INT_CERU. Se concluye que la tabla ARTICULOS no se tiene que hacer cambio alguno. 3. Anlisis de la tabla Auditoria 3.1. Error: La tabla auditoria tiene campos que no esta relacionado con ninguna de las otras tablas, y en esta se tiene un campo de AUD_USAU el cual tiene la identificacin de la persona que realizo la Auditoria.

3.2. Solucin: En la tabla Usuarios se tiene un campo (USUA_IDE) el cual se tiene una relacin con el campo AUD_USUA, para lo que hemos concluido que se deben relacionar estas tablas con estos campos antes vistos.

4. Anlisis de la tabla Categoras 4.1. Error: La tabla Categoras tiene no tiene error alguno de los campos ni en las relaciones que se tiene todos los campos son necesarios e indispensables.

5. Anlisis de la tabla Clientes : 5.1. Error: En la Tabla se detecta que estn datos del histrico de ventas estas porque nos sale la cantidad que se ha vendido en diferentes aos.

5.2. Solucin: La Tabla Cliente debera tener otro nombre que sera HISTORIA DE VENTAS

6. Anlisis de la tabla CONSULTAS 6.1. Error: La Tabla Consulta se ve que es incensario que est creada ya que esta se crea con la finalidad de ejecutar cuando se necesite cierta informacin.

6.2. Solucin: La tabla se ve innecesaria ya que en la Base de Datos SQL SERVER para guardar cada una de las consultas que se necesiten y luego abrir estas cuando se las necesite.

7. Anlisis de la tabla Filtros 7.1. Error: Igual que la tabla Consultas esta no en necesario como anteriormente se ha dicho esta hay como guardarla con la tabla consulta anteriormente ya creadas

7.2. Solucin: Los filtros aadimos a las consultas ya creadas para que as a las hora que se necesario se la utilice.

7.3. Y as con cada una de las consultas guardadas, y a continuacin se eliminaran las dos tablas. CONSULTAS Y FILTROS

8. Anlisis de la Tabla Despachar 8.1. La tabla despacha es donde se encuentran las sucursales de donde se adquiere cada uno de los productos se sugiere que no se cambie nada de ninguno de ellos.

9. Anlisis de la Tabla Marcas 9.1. Primero analizamos lo que contiene la tabla ya que esta est relacionada con la tabla Categoras la cual debe de coincidir cada una de ellas para lo cual se realiza lo siguiente: 1. Realizamos filtros de cada una de las marcas que hay en la tabla de Marcas y analizamos en la tabla Categoras para ver si estas estn bien 2. Realizamos filtros de cada una de las marcas que hay en la tabla de Marcas y analizamos en la tabla Categoras para ver si estas estn bien

En conclusin esta tabla est bien relacionada.

3. Realizamos filtros de cada una de las marcas que hay en la tabla de Marcas y analizamos en la tabla Categoras para ver si estas estn bien

Como conclusin este no est bien relacionada como se ve en las imgenes anteriores la categora tiene la marca TISSOT y en la tabla Marka tiene con el nmero 2 QUARTZ para eso realizamos el cambio en la tabla Marka .

4. Realizamos filtros de cada una de las marcas que hay en la tabla de Marcas y analizamos en la tabla Categoras para ver si estas estn bien

Como conclusin este no est bien relacionada como se ve en las imgenes anteriores la categora tiene la marca TISSOT y en la tabla Marka tiene con el nmero 2 QUARTZ para eso realizamos el cambio en la tabla Marka .

5. Se realiza el filtro con el campo 4 con que nos sale lo siguiente:

En la tabla marcas el dato 4 tiene:

Para lo cual se realiza el cambio en las tablas Marcas

6. Se analiza con el siguiente dato 5 la tabla Categora:

Este mal relacionado en la tabla Categora ya que este debe de tener relacin con el IDE 3 que correspondera al campo anterior para esto se realiza lo siguiente:

7. Analizamos con el IDE 6 para lo cual obtenemos

Para lo cual se necesita que le reasignemos las marcas a cada categora y as nos quedara.

8. Se realiza el anlisis de IDE 7 el filtro.

Le podemos dejar con ese IDE ya que los dos objetos que estn en las tablas si corresponde a una Marca de VARIOS. 9. Luego analizamos con el IDE 8 para ver si las tablas est relacionada correctamente

Para lo cual cambiamos a tabla categora y la tabla marcas el campo repuesto se eliminara.

Y se eliminara el campo de repuestos

10. Analizamos la tabla interventores 10.1. Error: la tabla interventores son los clientes que tenemos as que esta tabla tiene mal el nombre.

10.2. Solucin: Para lo cual cambiamos el nombre de la tabla y la relacionamos nuevamente.

11. Anlisis de la tabla Factura Detalle 12. Error: La factura detalle tiene un campo que son relaciona tabla Artculos la cual no est relacionada.

13. Solucin: La tabla le relacionamos con la tabla Artculos.

DOCUMENTACION DE LA APLICACIN FORMULARIOS 1. Hemos visto la necesidad de crear un formulario de acceso para seguridad de los datos

Aqu le vamos a tener acceso de Administrador y Usuarios (vendedores). En este formulario hemos creado usuarios con diferentes privilegios para que cada uno de ellos tenga acceso a formularios de manera personalizada.

El proceso es ingresar el nombre de usuario y su contrasea y presionar el botn entrar, en dicho botn encontramos el siguiente cdigo de programacin.
protected void Button1_Click(object sender, EventArgs e) { if (TextBox1.Text == "Administrador") { if (TextBox2.Text == "0123456789") { Label1.Visible = true; HyperLink1.Visible = true; HyperLink2.Visible = true; HyperLink3.Visible = true; HyperLink4.Visible = true; HyperLink5.Visible = true; HyperLink6.Visible = true; HyperLink7.Visible = true; TextBox1.Enabled = false; TextBox2.Enabled = false; } }

if (TextBox1.Text == "Fausto") { if (TextBox2.Text == "0123") { Label1.Visible = true; HyperLink3.Visible = true; HyperLink6.Visible = true;

TextBox1.Enabled = false; TextBox2.Enabled = false; } }

if (TextBox1.Text == "Aida") { if (TextBox2.Text == "012345") { Label1.Visible = true; HyperLink1.Visible = true; HyperLink2.Visible = true; TextBox1.Enabled = false; TextBox2.Enabled = false; } }

if (TextBox1.Text == "Claudio") { if (TextBox2.Text == "012346") { Label1.Visible = true; HyperLink5.Visible = true; HyperLink7.Visible = true; TextBox1.Enabled = false; TextBox2.Enabled = false; } } } } }

2. Realizamos el Formulario para guardar, actualizar y eliminar los Artculos

Lo que podemos recalcar de este formulario es que estamos enlazando mediante un Dropdownlist las categoras que se encuentran en la base en la Tabla Artculos .

BOTON GUARDAR
protected void Button1_Click(object sender, EventArgs e) { ClsArticulo ObjArticulos = new ClsArticulo((this.TextBox1.Text), DropDownList1.SelectedValue, this.TextBox3.Text, int.Parse(this.TextBox4.Text), int.Parse(this.TextBox5.Text), int.Parse(this.TextBox6.Text), this.TextBox7.Text, DateTime.Parse( this.TextBox9.Text), DateTime.Parse(this.TextBox8.Text), this.TextBox10.Text, this.TextBox11.Text, this.TextBox12.Text); ObjArticulos.Guardar(); GrdListarArticulos.DataSource = ObjArticulos.ListarArticulos(); GrdListarArticulos.DataBind(); }

BOTON ACTUALIZAR
protected void Button2_Click(object sender, EventArgs e) { ClsArticulo ObjArticulos = new ClsArticulo((this.TextBox1.Text), DropDownList1.SelectedValue, this.TextBox3.Text, int.Parse(this.TextBox4.Text), int.Parse(this.TextBox5.Text), int.Parse(this.TextBox6.Text), this.TextBox7.Text, DateTime.Parse(this.TextBox9.Text), DateTime.Parse(this.TextBox8.Text), this.TextBox10.Text, this.TextBox11.Text, this.TextBox12.Text); ObjArticulos.Modificar(); GrdListarArticulos.DataSource = ObjArticulos.ListarArticulos(); GrdListarArticulos.DataBind(); }

BOTNON ELIMINAR
protected void Button3_Click(object sender, EventArgs e) { ClsArticulo ObjArticulos = new ClsArticulo((this.TextBox1.Text), DropDownList1.SelectedValue, this.TextBox3.Text, int.Parse(this.TextBox4.Text), int.Parse(this.TextBox5.Text), int.Parse(this.TextBox6.Text), this.TextBox7.Text, DateTime.Parse(this.TextBox9.Text), DateTime.Parse(this.TextBox8.Text), this.TextBox10.Text, this.TextBox11.Text, this.TextBox12.Text); ObjArticulos.Eliminar(); GrdListarArticulos.DataSource = ObjArticulos.ListarArticulos(); GrdListarArticulos.DataBind(); this.TextBox1.Text = ""; this.TextBox3.Text = ""; this.TextBox4.Text = ""; this.TextBox5.Text = ""; this.TextBox6.Text = ""; this.TextBox7.Text = ""; this.TextBox8.Text = ""; this.TextBox9.Text = ""; this.TextBox10.Text = ""; this.TextBox11.Text = ""; this.TextBox12.Text = ""; }

Hemos incrementado una grilla con el nombre GrdListarArticulos para listar los
artculos protected void GrdListarArticulos_SelectedIndexChanged(object sender, EventArgs e) { TextBox1.Text = GrdListarArticulos.SelectedRow.Cells[1].Text;

DropDownList1.SelectedItem.Text = GrdListarArticulos.SelectedRow.Cells[2].Text; TextBox3.Text = GrdListarArticulos.SelectedRow.Cells[3].Text; TextBox4.Text = GrdListarArticulos.SelectedRow.Cells[4].Text; TextBox5.Text = GrdListarArticulos.SelectedRow.Cells[5].Text; TextBox6.Text = GrdListarArticulos.SelectedRow.Cells[6].Text; TextBox7.Text = GrdListarArticulos.SelectedRow.Cells[8].Text; TextBox8.Text = GrdListarArticulos.SelectedRow.Cells[9].Text; TextBox9.Text = GrdListarArticulos.SelectedRow.Cells[10].Text; TextBox10.Text = GrdListarArticulos.SelectedRow.Cells[11].Text; TextBox11.Text = GrdListarArticulos.SelectedRow.Cells[12].Text; TextBox12.Text = GrdListarArticulos.SelectedRow.Cells[13].Text; } INSTANCIA PARA LLAMAR A LA CLASE ARTICULOS using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using Microsoft.ApplicationBlocks.Data; using System.Web.Configuration; using System.Data.SqlClient; /// <summary> /// Descripcin breve de ClsCategoria /// </summary> public class ClsArticulo { private string mArtId; public string pArtId { get { return mArtId; } set { mArtId = value; } } private string mArtCate; public string pArtCate { get { return mArtCate; } set { mArtCate = value; } } private string mArtDescrip; public string pArtDescrip { get { return mArtDescrip; } set { mArtDescrip = value; } } private decimal mArtCosto; public decimal pArtCosto { get { return mArtCosto; }

set { mArtCosto = value; } } private int mArtCant; public int pArtCant { get { return mArtCant; } set { mArtCant = value; } } private int mArtTipo; public int pArtTipo { get { return mArtTipo; } set { mArtTipo = value; } } private string mArtObserv; public string pArtObserv { get { return mArtObserv; } set { mArtObserv = value; } } private DateTime mArtFechaCrea; public DateTime pArtFechaCrea { get { return mArtFechaCrea; } set { mArtFechaCrea = value; } } private DateTime mArtFechaAct; public DateTime pArtFechaAct { get { return mArtFechaAct; } set { mArtFechaAct = value; } } private string mArtIdCrea; public string pArtIdCrea { get { return mArtIdCrea; } set { mArtIdCrea = value; } } private string mArtIdAct; public string pArtIdAct { get { return mArtIdAct; } set { mArtIdAct = value; } } private string mArtItem; public string pArtItem { get { return mArtItem; } set { mArtItem = value; } } ~ClsArticulo() {

} public ClsArticulo() { } public ClsArticulo(string auxArtId) { pArtId = auxArtId; } public ClsArticulo(string auxArtId, string auxArtCate, string auxArtdescrip, decimal auxArtCosto, int auxArtCant, int auxArtTipo, string auxObserv, DateTime auxArtFechaCrea, DateTime auxArtFechaAct, string auxArtIdCrea, string auxArtIdAct, string auxArtItem) { pArtId = auxArtId; pArtCate = auxArtCate; pArtDescrip = auxArtdescrip; pArtCosto = auxArtCosto; pArtCant = auxArtCant; pArtTipo = auxArtTipo; pArtObserv = auxObserv; pArtFechaCrea = auxArtFechaCrea; pArtFechaAct = auxArtFechaAct; pArtIdCrea = auxArtIdCrea; pArtIdAct = auxArtIdAct; pArtItem = auxArtItem; } public DataTable ListarArticulos() { return SqlHelper.ExecuteDataset(WebConfigurationManager.ConnectionStrings["Conexionbase" ].ConnectionString, CommandType.StoredProcedure, "ListarArticulos").Tables[0]; } public int Guardar() { SqlParameter[] ParametrosGuardar = new SqlParameter[11]; ParametrosGuardar[0] = new SqlParameter("@ArtId", pArtId); ParametrosGuardar[1] = new SqlParameter("@ArtCate",pArtCate); ParametrosGuardar[1] = new SqlParameter("@ArtDescrip",pArtDescrip); ParametrosGuardar[2] = new SqlParameter("@ArtCosto", pArtCosto); ParametrosGuardar[3] = new SqlParameter("@ArtCant", pArtCant); ParametrosGuardar[4] = new SqlParameter("@ArtTipo", pArtTipo); ParametrosGuardar[5] = new SqlParameter("@ArtObserv", pArtObserv); ParametrosGuardar[6] = new SqlParameter("@ArtFechaCrea", pArtFechaCrea); ParametrosGuardar[7] = new SqlParameter("@ArtFechaAct", pArtFechaAct); ParametrosGuardar[8] = new SqlParameter("@ArtIdCrea", pArtIdCrea); ParametrosGuardar[9] = new SqlParameter("@ArtIdAct", pArtIdAct); ParametrosGuardar[10] = new SqlParameter("@ArtItem", pArtItem); return SqlHelper.ExecuteNonQuery(WebConfigurationManager.ConnectionStrings["Conexionbase "].ConnectionString, CommandType.StoredProcedure, "GuardarArticulos", ParametrosGuardar);

} public int Modificar() { SqlParameter[] ParametrosModificar = new SqlParameter[11]; ParametrosModificar[0] = new SqlParameter("@ArtId", pArtId); ParametrosModificar[1] = new SqlParameter("@ArtCate", pArtCate); ParametrosModificar[1] = new SqlParameter("@ArtDescrip", pArtDescrip); ParametrosModificar[2] = new SqlParameter("@ArtCosto", pArtCosto); ParametrosModificar[3] = new SqlParameter("@ArtCant", pArtCant); ParametrosModificar[4] = new SqlParameter("@ArtTipo", pArtTipo); ParametrosModificar[5] = new SqlParameter("@ArtObserv", pArtObserv); ParametrosModificar[6] = new SqlParameter("@ArtFechaCrea", pArtFechaCrea); ParametrosModificar[7] = new SqlParameter("@ArtFechaAct", pArtFechaAct); ParametrosModificar[8] = new SqlParameter("@ArtIdCrea", pArtIdCrea); ParametrosModificar[9] = new SqlParameter("@ArtIdAct", pArtIdAct); ParametrosModificar[10] = new SqlParameter("@ArtItem", pArtItem); return SqlHelper.ExecuteNonQuery(WebConfigurationManager.ConnectionStrings["Conexionbase "].ConnectionString, CommandType.StoredProcedure, "ModificarArticulos", ParametrosModificar); } public int Eliminar() { SqlParameter[] ParametrosEliminar = new SqlParameter[1]; ParametrosEliminar[0] = new SqlParameter("@ArtId", pArtId); return SqlHelper.ExecuteNonQuery(WebConfigurationManager.ConnectionStrings["Conexionbase "].ConnectionString, CommandType.StoredProcedure, "EliminarArticulo", ParametrosEliminar); } } CREACION DE PROCEDIMIENTO ALMACENADO EN LA BASE DE DATOS PARA LA GESTION DE LA TABLA DE ARTICULOS LISTAR ARTICULOS

USE [QuintoaSql] GO /****** Object: StoredProcedure [dbo].[ListarArticulos] Date: 03/01/2013 17:25:45 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO

Script

ALTER PROCEDURE [dbo].[ListarArticulos] AS BEGIN Select ART_IDEN, ART_CATE, ART_DESC, ART_COST, ART_EXIS, ART_TIPO, ART_OBSE, ART_FECR, ART_FEAC, ART_CREA, ART_ACTU, ART_ITEM from ARTICULOS END

MODIFICAR ARTICULOS

CREATE PROCEDURE ModificarArticulo @ArtId nvarchar(20), @ArtCate nvarchar(20), @ArtDescrip nvarchar(50), @ArtCosto decimal(5,2), @ArtCant int, @ArtTipo numeric(1,0), @ArtObserv nvarchar(100), @ArtFechaCrea datetime, @ArtFechaAct datetime, @ArtIdCrea nvarchar(13), @ArtIdAct nvarchar(13), @ArtItem nvarchar(3) AS BEGIN update ARTICULOS set ART_IDEN=@ArtId, ART_CATE=@ArtCate, ART_DESC=@ArtDescrip, ART_COST=@ArtCosto, ART_EXIS=@ArtCant, ART_TIPO=@ArtTipo END GO

ELIMINAR ARTICULOS

USE [QuintoaSql] GO /****** Object: StoredProcedure [dbo].[EliminarArticulo] Date: 02/22/2013 21:45:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[EliminarArticulo] @ArtId nvarchar(20) AS BEGIN delete from ARTICULOS where ART_IDEN=@ArtId END

Script

3. Creacin del formulario para la tabla categora de a base de datos

Se crearon los botones para mantenimiento de la Tabla, como son los de actualizar, eliminar y guardar CODIGO PARA LA EJECUCION DE LOS BOTONES DE FORMULARIO CATEGORIA BOTON GUARDAR
protected void Button1_Click(object sender, EventArgs e) { ClsCategoria ObjCategoria = new ClsCategoria((this.TextBox1.Text), this.TextBox2.Text, (DateTime.Parse(this.TextBox8.Text)), (DateTime.Parse(this.TextBox7.Text)), this.TextBox3.Text, this.TextBox4.Text, (this.DropDownList1.SelectedValue[1]), this.TextBox6.Text); ObjCategoria.Guardar(); GridView1.DataSource = ObjCategoria.ListarCategoria(); GridView1.DataBind(); }

BOTON ACTUALIZAR
protected void Button2_Click(object sender, EventArgs e) { ClsCategoria ObjCategoria = new ClsCategoria((this.TextBox1.Text), this.TextBox2.Text, (DateTime.Parse(this.TextBox8.Text)), (DateTime.Parse(this.TextBox7.Text)), this.TextBox3.Text, this.TextBox4.Text, (this.DropDownList1.SelectedValue[0]), this.TextBox6.Text); ObjCategoria.Modificar(); GridView1.DataSource = ObjCategoria.ListarCategoria(); GridView1.DataBind(); }

BOTON ELIMINAR
protected void Button3_Click(object sender, EventArgs e) { ClsCategoria ObjCategoria = new ClsCategoria((this.TextBox1.Text), this.TextBox2.Text, (DateTime.Parse(this.TextBox8.Text)), (DateTime.Parse(this.TextBox7.Text)), this.TextBox3.Text, this.TextBox4.Text, (this.DropDownList1.SelectedValue[1]), this.TextBox6.Text);

ObjCategoria.Eliminar(); GridView1.DataSource = ObjCategoria.ListarCategoria(); GridView1.DataBind(); this.TextBox1.Text = ""; this.TextBox3.Text = ""; this.TextBox4.Text = ""; this.DropDownList1.SelectedItem.Text = ""; this.TextBox6.Text = ""; this.TextBox7.Text = ""; this.TextBox8.Text = ""; }

VISUALIZACION DE CATEGORIAS
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { TextBox1.Text = GridView1.SelectedRow.Cells[1].Text; TextBox2.Text = GridView1.SelectedRow.Cells[2].Text; TextBox8.Text = GridView1.SelectedRow.Cells[3].Text; TextBox7.Text = GridView1.SelectedRow.Cells[4].Text; TextBox3.Text = GridView1.SelectedRow.Cells[5].Text; TextBox6.Text = GridView1.SelectedRow.Cells[6].Text; //DropDownList1.SelectedItem.Text = GridView1.SelectedRow.Cells[7].Text; TextBox4.Text = GridView1.SelectedRow.Cells[7].Text;

INSTANCIA PARA CONEXIN CON LA CLASE CATEGORIAS


protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ClsCategoria ObjCategoria = new ClsCategoria(); GridView1.DataSource = ObjCategoria.ListarCategoria(); GridView1.DataBind();

} }

CLASE PARA LA CONEXIN CON LA BASE CATEGORIAS


public class ClsCategoria { private string mCatCod; public string pCatCod { get { return mCatCod; } set { mCatCod = value; } } private string mCatNom; public string pCatNom {

get { return mCatNom; } set { mCatNom = value; } } private DateTime mCatFechaCrea; public DateTime pCatFechaCrea { get { return mCatFechaCrea; } set { mCatFechaCrea = value; } } private DateTime mCatFechaAct; public DateTime pCatFechaAct { get { return mCatFechaAct; } set { mCatFechaAct = value; } } private string mCatIdCrea; public string pCatIdCrea { get { return mCatIdCrea; } set { mCatIdCrea = value; } } private string mCatIdAct; public string pCatIdAct { get { return mCatIdAct; } set { mCatIdAct = value; } } private int mCatMarca; public int pCatMarca { get { return mCatMarca; } set { mCatMarca = value; } } private string mCatReferencia; public string pCatReferencia { get { return mCatReferencia; } set { mCatReferencia = value; } } ~ClsCategoria() { } public ClsCategoria() { } public ClsCategoria(string auxCatId) { pCatCod = auxCatId; }

public ClsCategoria(string auxCatId, string auxCatNom, DateTime auxCatFechaCrea, DateTime auxCatFechaAct, string auxCatIdCrea, string auxCatIdAct, int auxCatMarca, string auxCatrferencia) { pCatCod = auxCatId; pCatNom = auxCatNom; pCatFechaCrea = auxCatFechaCrea; pCatFechaAct = auxCatFechaAct; pCatIdCrea = auxCatIdCrea; pCatIdAct = auxCatIdAct; pCatMarca = auxCatMarca; pCatReferencia = auxCatrferencia; } public DataTable ListarCategoria() { return SqlHelper.ExecuteDataset(WebConfigurationManager.ConnectionStrings["Conexionbase" ].ConnectionString, CommandType.StoredProcedure, "ListarCategoria").Tables[0]; } public int Guardar() { SqlParameter[] ParametrosGuardar = new SqlParameter[8]; ParametrosGuardar[0] = new SqlParameter("@CAT_IDEN", pCatCod); ParametrosGuardar[1] = new SqlParameter("@CAT_NOMB", pCatNom); ParametrosGuardar[2] = new SqlParameter("@USU_FECR", pCatFechaCrea); ParametrosGuardar[3] = new SqlParameter("@USU_FEAC", pCatFechaAct); ParametrosGuardar[4] = new SqlParameter("@USU_CREA", pCatIdCrea); ParametrosGuardar[5] = new SqlParameter("@USU_ACTU", pCatIdAct); ParametrosGuardar[6] = new SqlParameter("@CAT_MARK", pCatMarca); ParametrosGuardar[7] = new SqlParameter("@CAT_REFE", pCatReferencia); return SqlHelper.ExecuteNonQuery(WebConfigurationManager.ConnectionStrings["Conexionbase "].ConnectionString, CommandType.StoredProcedure, "GuardarCatagoria", ParametrosGuardar); } public int Modificar() { SqlParameter[] ParametrosModificar = new SqlParameter[8]; ParametrosModificar[0] = new SqlParameter("@CAT_IDEN", pCatCod); ParametrosModificar[1] = new SqlParameter("@CAT_NOMB", pCatNom); ParametrosModificar[2] = new SqlParameter("@USU_FECR", pCatFechaCrea); ParametrosModificar[3] = new SqlParameter("@USU_FEAC", pCatFechaAct); ParametrosModificar[4] = new SqlParameter("@USU_CREA", pCatIdCrea); ParametrosModificar[5] = new SqlParameter("@USU_ACTU", pCatIdAct); ParametrosModificar[6] = new SqlParameter("@CAT_MARK", pCatMarca); ParametrosModificar[7] = new SqlParameter("@CAT_REFE", pCatReferencia); return SqlHelper.ExecuteNonQuery(WebConfigurationManager.ConnectionStrings["Conexionbase "].ConnectionString, CommandType.StoredProcedure, "ModificarCategoria", ParametrosModificar);

} public int Eliminar() { SqlParameter[] ParametrosEliminar = new SqlParameter[1]; ParametrosEliminar[0] = new SqlParameter("@CAT_IDEN", pCatCod); return SqlHelper.ExecuteNonQuery(WebConfigurationManager.ConnectionStrings["Conexionbase "].ConnectionString, CommandType.StoredProcedure, "EliminarCategoria", ParametrosEliminar); } }

PROCEDIMIENTOS ALMACENADO PARA LA MANIPULACION DE INFORMACION DE LA TABLA CATEGORIAS

4. Debido a que existe la tabla de Usuarios de la empresa, la misma que por su actividad comercial deber eliminar o registrar nuevos usuarios para manejar el sistema , por lo que se cre el formulario de registro de usuarios

CODIGO PARA LA EJECUCION DE LOS BOTONES DEL FORMULARIO REGISTRAR USUARIOS BOTON GUARDAR
protected void Button1_Click(object sender, EventArgs e)

{ ClsUsuario Objusuario = new ClsUsuario(this.TextBox1.Text, this.TextBox2.Text, this.TextBox3.Text, this.Calendar1.SelectedDate, this.Calendar2.SelectedDate); Objusuario.Guardar(); GridView1.DataSource = Objusuario.ListarUsuarios(); GridView1.DataBind(); }

BOTON ACTUALIZAR
protected void Button2_Click(object sender, EventArgs e) { ClsUsuario Objusuario = new ClsUsuario(this.TextBox1.Text, this.TextBox2.Text, this.TextBox3.Text, this.Calendar1.SelectedDate, this.Calendar2.SelectedDate); Objusuario.Modificar(); GridView1.DataSource = Objusuario.ListarUsuarios(); GridView1.DataBind(); }

BOTON ELIMINAR
protected void Button3_Click(object sender, EventArgs e) { ClsUsuario Objusuario = new ClsUsuario(this.TextBox1.Text, this.TextBox2.Text, this.TextBox3.Text, this.Calendar1.SelectedDate, this.Calendar2.SelectedDate); Objusuario.Eliminar(); GridView1.DataSource = Objusuario.ListarUsuarios(); GridView1.DataBind(); this.TextBox1.Text = ""; this.TextBox2.Text = ""; this.TextBox3.Text = ""; }

LISTAR USUARIOS
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { TextBox1.Text = GridView1.SelectedRow.Cells[1].Text; TextBox2.Text = GridView1.SelectedRow.Cells[2].Text; TextBox3.Text = GridView1.SelectedRow.Cells[3].Text; }

5. La tabla clientes que existe en la base de datos es indispensable para el proceso de facturacin de la cual se obtendrn los datos para poder realizar la facturacin, por tal motivo se deber llevar un registro de clientes nuevos, o a su vez poder realizar modificaciones del domicilio, telfono, etc.

6. Existe la necesidad de realizar un formulario de mantenimiento para la tabla reas, con las opciones de Guardar, Actualizar y eliminar.

7. Debido a la existencia de la tabla de MARKAS en la Base de Datos, existe la necesidad de crear el formulario para realizar el mantenimiento respectivo para la Tabla.

8. En nuestro pas existen varias provincias por lo que necesitamos un formulario para el mantenimiento de esta tabla existente en la BD

CODIGO PARA LA EJECUCION DE LOS BOTONES DEL FORMULARIO provincias BOTON GUARDAR
protected void Button1_Click(object sender, EventArgs e) { ClsUsuario Objprovincias = new Clsprovincias(this.TextBox1.Text, this.TextBox2.Text, this.TextBox3.Text, this.Calendar1.SelectedDate, this.Calendar2.SelectedDate); Objusuario.Guardar(); GridView1.DataSource = Objusuario.ListarUsuarios(); GridView1.DataBind(); }

BOTON ACTUALIZAR
protected void Button2_Click(object sender, EventArgs e) { ClsUsuario Objprovincias = new Clsprovincias(this.TextBox1.Text, this.TextBox2.Text, this.TextBox3.Text, this.Calendar1.SelectedDate, this.Calendar2.SelectedDate); Objusuario.Modificar(); GridView1.DataSource = Objusuario.ListarUsuarios(); GridView1.DataBind(); }

BOTON ELIMINAR
protected void Button3_Click(object sender, EventArgs e) { ClsUsuario Objusuario = new ClsUsuario(this.TextBox1.Text, this.TextBox2.Text, this.TextBox3.Text, this.Calendar1.SelectedDate, this.Calendar2.SelectedDate); Objusuario.Eliminar(); GridView1.DataSource = Objusuario.ListarUsuarios(); GridView1.DataBind(); this.TextBox1.Text = ""; this.TextBox2.Text = ""; this.TextBox3.Text = ""; }

LISTAR provincias
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { TextBox1.Text = GridView1.SelectedRow.Cells[1].Text; TextBox2.Text = GridView1.SelectedRow.Cells[2].Text; TextBox3.Text = GridView1.SelectedRow.Cells[3].Text;

} 9. La tabla de tipo de movimientos

10. En la tabla proveedores existen datos inconsistentes que no tienen ninguna relacin con los datos de proveedores, de manera que realizamos un anlisis en la tabla factura cabecera buscamos todas las compras que se hayan realizado los mismos registros de las compras vendrn a ser un registro de proveedores. select distinct FAC_CAB_INTE from FACTURA_CABECERA where FAC_CAB_TIPO='CO' Con los cdigos encontrados en la tabla Factura Cabecera buscamos en la tabla clientes si existen estos registros los mismos que vendran a ser los proveedores. select * from CLIENTES where int_ceru in (select distinct FAC_CAB_INTE from FACTURA_CABECERA where FAC_CAB_TIPO='CO') Copiamos los registros de proveedores encontrados en la table clients a la table proveedores insert into PROVEEDORES (PRO_CERU, PRO_CNIA, PRO_DIR1, PRO_CIUD, PRO_TEL1, PRO_TEL2, PRO_PROV, PRO_OBSE, PRO_MAIL, PRO_SITE) select int_ceru, INT_CNIA, INT_DIR1, INT_CIUD, INT_TEL1, INT_TEL2, INT_PROV, INT_OBSE, INT_MAIL, INT_SITE from CLIENTES where int_ceru in (select distinct FAC_CAB_INTE from FACTURA_CABECERA where FAC_CAB_TIPO='CO') El Formulario de proveedores se visualizar de esta manera

CONSULTA PARA GUARDAR PROVEEDORES USE *BaseQuintoA+ GO /****** Object: StoredProcedure *dbo+.*GuardarProveedores+ 04/18/2013 18:39:13 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE *dbo+.*GuardarProveedores+ @PRO_CERU @PRO_CNIA @PRO_DIR1 varchar(70), @PRO_CIUD @PRO_TEL1 @PRO_TEL2 @PRO_OBSE @PRO_MAIL @PRO_SITE AS

Script Date:

char(13), varchar(40), char(24), numeric(10, 0), numeric(10, 0), varchar(100), varchar(50), varchar(50)

BEGIN if exists(select PRO_CERU from PROVEEDORES where PRO_CERU =@PRO_CERU) begin update PROVEEDORES set PRO_CNIA=@PRO_CNIA, PRO_DIR1=@PRO_DIR1, PRO_CIUD=@PRO_CIUD, PRO_TEL1=@PRO_TEL1, PRO_TEL2=@PRO_TEL2, PRO_OBSE=@PRO_OBSE, PRO_MAIL=@PRO_MAIL, PRO_SITE=@PRO_SITE where PRO_CERU= @PRO_CERU end else begin insert into PROVEEDORES (PRO_CERU, PRO_CNIA, PRO_DIR1, PRO_CIUD, PRO_TEL1, PRO_TEL2, PRO_OBSE, PRO_MAIL, PRO_SITE) values(@PRO_CERU, @PRO_CNIA, @PRO_DIR1, @PRO_CIUD, @PRO_TEL1, @PRO_TEL2, @PRO_OBSE, @PRO_MAIL, @PRO_SITE)

end END

CONSULTA PARA LISTAR PROVEEDORES USE *BaseQuintoA+ GO /****** Object: StoredProcedure *dbo+.*ListarProveedores+ Script Date: 04/18/2013 18:39:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE *dbo+.*ListarProveedores+ AS BEGIN SELECT PRO_CERU AS ID, PRO_CNIA AS Compania, PRO_DIR1 AS Direccin, PRO_CIUD AS Ciudad, PRO_TEL1 AS Telefono1, PRO_TEL2 AS Telefono2, PRO_OBSE AS Observacion, PRO_MAIL AS Mail, PRO_SITE AS WEB FROM dbo.PROVEEDORES END CONSULTA PARA ELIMINAR PROVEEDORES USE *BaseQuintoA+ GO

/****** Object: StoredProcedure *dbo+.*EliminarProveedor+ Script Date: 04/18/2013 18:40:30 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE *dbo+.*EliminarProveedor+ @PRO_CERU char(13) AS BEGIN delete from PROVEEDORES where PRO_CERU=@PRO_CERU END CLASE PROVEEDORES USE *BaseQuintoA+ GO /****** Object: StoredProcedure *dbo+.*EliminarProveedor+ Script Date: 04/18/2013 18:40:30 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE *dbo+.*EliminarProveedor+ @PRO_CERU char(13) AS BEGIN delete from PROVEEDORES where PRO_CERU=@PRO_CERU END CODIGO PARA INSTANCIAR, GUARDAR, ACTUALIZAR, ELIMINAR using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class FrmProveedores : System.Web.UI.Page , protected void Page_Load(object sender, EventArgs e) , if (!IsPostBack) ,

ClsProveedores ObjProveedores = new ClsProveedores(); GridView1.DataSource = ObjProveedores.ListarProveedor(); GridView1.DataBind(); protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) , TextBox1.Text = GridView1.SelectedRow.Cells*1+.Text; TextBox2.Text = GridView1.SelectedRow.Cells*2+.Text; TextBox3.Text = GridView1.SelectedRow.Cells*3+.Text; TextBox4.Text = GridView1.SelectedRow.Cells*4+.Text; TextBox5.Text = GridView1.SelectedRow.Cells*5+.Text; TextBox6.Text = GridView1.SelectedRow.Cells*6+.Text; TextBox8.Text = GridView1.SelectedRow.Cells*7+.Text; TextBox9.Text = GridView1.SelectedRow.Cells*8+.Text; TextBox10.Text = GridView1.SelectedRow.Cells*9+.Text; protected void Button1_Click(object sender, EventArgs e) , ClsProveedores ObjProveedores = new ClsProveedores(this.TextBox1.Text, this.TextBox2.Text, this.TextBox3.Text, this.TextBox4.Text, int.Parse(this.TextBox5.Text), int.Parse(this.TextBox6.Text), this.TextBox8.Text, this.TextBox9.Text, this.TextBox10.Text); ObjProveedores.Guardar(); GridView1.DataSource = ObjProveedores.ListarProveedor(); GridView1.DataBind(); this.TextBox1.Text = ""; this.TextBox2.Text = ""; this.TextBox3.Text = ""; this.TextBox4.Text = ""; this.TextBox5.Text = ""; this.TextBox6.Text = ""; this.TextBox8.Text = ""; this.TextBox9.Text = ""; this.TextBox10.Text = ""; protected void Button2_Click(object sender, EventArgs e) , ClsProveedores ObjProveedores = new ClsProveedores((this.TextBox1.Text)); ObjProveedores.Eliminar(); GridView1.DataSource = ObjProveedores.ListarProveedor(); GridView1.DataBind(); this.TextBox1.Text = ""; this.TextBox2.Text = ""; this.TextBox3.Text = ""; this.TextBox4.Text = "";

this.TextBox5.Text = ""; this.TextBox6.Text = ""; this.TextBox8.Text = ""; this.TextBox9.Text = ""; this.TextBox10.Text = ""; -

CREACION DE REPORTES (OLAP) Reporte de Compras - reas por Artculos

Para el informe que se realizar se toma como referencia la tabla FACTURA_DETALLE de esta tabla se seleccionaran todos los datos que seran evaluados dentro del nuestro informe. A continuacin se detallara todo el proceso y todos los requisitos que son necesarios para la creacin del informe. Para nuestro reporte se seleccionaran todas la compras que re han realizado durante todo el tiempo de actividad de la empresa, para ello hemos tomado como referencia el tipo de rea y el tipo de artculo. Esto nos indicara que tipo de articulo ha ingresado a una determina rea. DESCRIPCION DEL INFORME: Se describen las dimensiones tales como son las AREAS Y ARTICULOS. En los cuales en la dimension area se proporcionaran los caompos como TIPO, NOMBRE, ESTADO. En la dimension Articulo de proporcionaran los campos tales como CODIGO, DESCRIPCION, COSTO, EXISTENCIA, OBSERVACION VALORES A ANALIZAR Para los valores a analizar se estan tomando como referencia la cantidad de un articulos especifico que ingresan a un area determinada, otro valor a analizar sera el precio de cada articulo que ha ingresado a cada area.

VALORES A ANALIZAR

AREAS

- Cantidad artculos ingresados. - Costos de artculos.

ARTICULOS CRITERIOS

Segmentacin: En este informe se realiza una segmentacin la cual consiste en la agrupacin de las compras con un rango de fecha adems mostrara el rea a que pertenece las compras, el detalle del articulo y el precio.
SELECT dbo.FACTURA_DETALLE.FAC_DET_TIPO, dbo.FACTURA_CABECERA.FAC_CAB_FEFA, dbo.FACTURA_DETALLE.FAC_DET_AREA, dbo.FACTURA_DETALLE.FAC_DET_ARTI,dbo.FACTURA_DETALLE.FAC_DET_PREC

FROM

dbo.FACTURA_CABECERA INNER JOIN dbo.FACTURA_DETALLE ON dbo.FACTURA_CABECERA.FAC_CAB_AREA = dbo.FACTURA_DETALLE.FAC_DET_AREA AND dbo.FACTURA_CABECERA.FAC_CAB_TIPO = dbo.FACTURA_DETALLE.FAC_DET_TIPO AND dbo.FACTURA_CABECERA.FAC_CAB_NUME = dbo.FACTURA_DETALLE.FAC_DET_NUME WHERE (dbo.FACTURA_CABECERA.FAC_CAB_FEFA >= '2005 - 07 - 18 16:51:24.0000000') AND (dbo.FACTURA_CABECERA.FAC_CAB_FEFA <= '2007 07 - 18 16:51:24.0000000') AND (dbo.FACTURA_CABECERA.FAC_CAB_TIPO = 'CO')En este

caso con esta consulta seleccionamos los datos de FACTURA_DETALLE cuando esta sean solo compras. Y segn lo requerido podemos segmentar el tipo de movimiento que deseemos.

Filtrar: En este caso se realiza un filtro segn los movimientos segmentados anteriormente pero seleccionando un rea especfica para tener conocimiento que tipo de movimiento se realiz en un rea determinada.

SELECT dbo.FACTURA_DETALLE.FAC_DET_TIPO, dbo.FACTURA_CABECERA.FAC_CAB_FEFA, dbo.FACTURA_DETALLE.FAC_DET_AREA, dbo.FACTURA_DETALLE.FAC_DET_ARTI,dbo.FACTURA_DETALLE.FAC_DET_PREC FROM dbo.FACTURA_CABECERA INNER JOIN dbo.FACTURA_DETALLE ON dbo.FACTURA_CABECERA.FAC_CAB_AREA = dbo.FACTURA_DETALLE.FAC_DET_AREA AND dbo.FACTURA_CABECERA.FAC_CAB_TIPO = dbo.FACTURA_DETALLE.FAC_DET_TIPO AND dbo.FACTURA_CABECERA.FAC_CAB_NUME = dbo.FACTURA_DETALLE.FAC_DET_NUME WHERE (dbo.FACTURA_CABECERA.FAC_CAB_FEFA >= '2005 - 07 - 18 16:51:24.0000000') AND (dbo.FACTURA_CABECERA.FAC_CAB_FEFA <= '2007 07 - 18 16:51:24.0000000') AND (dbo.FACTURA_CABECERA.FAC_CAB_TIPO = 'CO')and dbo.FACTURA_DETALLE.FAC_DET_AREA = '3'

Con esta consulta estaremos seleccionando todas las compras que ha realizado un area determinada.

Profundizar: Para profundizar la informacin de los parmetros anteriores la informacin nos visualizara de acuerdo a un costo mayor o menor determinado.

SELECT dbo.FACTURA_DETALLE.FAC_DET_TIPO, dbo.FACTURA_CABECERA.FAC_CAB_FEFA, dbo.FACTURA_DETALLE.FAC_DET_AREA, dbo.FACTURA_DETALLE.FAC_DET_ARTI,dbo.FACTURA_DETALLE.FAC_DET_PREC FROM dbo.FACTURA_CABECERA INNER JOIN

dbo.FACTURA_DETALLE ON dbo.FACTURA_CABECERA.FAC_CAB_AREA = dbo.FACTURA_DETALLE.FAC_DET_AREA AND dbo.FACTURA_CABECERA.FAC_CAB_TIPO = dbo.FACTURA_DETALLE.FAC_DET_TIPO AND dbo.FACTURA_CABECERA.FAC_CAB_NUME = dbo.FACTURA_DETALLE.FAC_DET_NUME WHERE (dbo.FACTURA_CABECERA.FAC_CAB_FEFA >= '2005 - 07 - 18 16:51:24.0000000') AND (dbo.FACTURA_CABECERA.FAC_CAB_FEFA <= '2007 07 - 18 16:51:24.0000000') AND (dbo.FACTURA_CABECERA.FAC_CAB_TIPO = 'CO')and dbo.FACTURA_DETALLE.FAC_DET_AREA = '3'and dbo.FACTURA_DETALLE.FAC_DET_COST>1000

Con todos estos parmetros el informe nos visualizara con una informacin parametrizada por las compras por un rango de fecha establecida dentro de una determinada rea de un determinado artculo dentro de un rango de coste establecido

Reporte de transacciones - reas por movimiento

En el informe se toma como referencia la tabla FACTURA_CABECERA Y AREAS de estas tablas se seleccionaran toda la informacin que vamos a necesitar. A continuacin se detallara todo el proceso. Se seleccionaran los movimientos y las reas las cuales queremos analizar y que se han realizado durante todo el tiempo de actividad de la empresa, para ello hemos tomado como referencia el tipo de rea y el tipo de movimiento. Esto nos indicara los diferentes movimientos que realiza cada una de las reas. DESCRIPCION DEL INFORME: Se describe los criterios del informe como son las reas y los movimientos, despus se analizaran todos los valores que se van a evaluar. Se describen las dimensiones del reporte la cuales son AREAS Y MOVIMIENTOS. En las cuales para la dimensin rea de escogern los campos TIPO, NOMBRE, ESTADO. En la dimensin movimiento se escogern los valores de: TIPO MOVIMIENTO, ESTADO. En los valores a medir se toma en cuenta la cantidad de transacciones que realiza cada una de las reas, adems se contabilizar la cantidad de ventas que ha realizado cada rea.

VALORES A ANALIZAR

AREAS

- Cantidad de movimientos de cada rea. - cantidad de ventas aprobadas.

MOVIMIENTO CRITERIOS

, Segmentacin: Para este informe se segmenta con la informacin segn las ventas que se han realizado y que estn aprobadas. De esta forma se realiza una consulta en la cual agrupamos todas las ventas
SELECT TOP (200) FACTURA_CABECERA.FAC_CAB_USUA, FACTURA_CABECERA.FAC_CAB_TIPO, TIPOS_DE_MOVIMIENTO.TIPMOV_IDEN, TIPOS_DE_MOVIMIENTO.TIPMOV_STAT FROM FACTURA_CABECERA INNER JOIN AREAS ON FACTURA_CABECERA.FAC_CAB_AREA = AREAS.ARE_IDEN INNER JOIN TIPOS_DE_MOVIMIENTO ON FACTURA_CABECERA.FAC_CAB_TIPO = TIPOS_DE_MOVIMIENTO.TIPMOV_IDEN WHERE (FACTURA_CABECERA.FAC_CAB_TIPO = 'VE') AND (FACTURA_CABECERA.FAC_CAB_FEFA > CONVERT(DATETIME, '2005-06-30 00:00:00', 102)) AND (FACTURA_CABECERA.FAC_CAB_FEFA CONVERT(DATETIME, '2007-07-30 00:00:00', 102)) (TIPOS_DE_MOVIMIENTO.TIPMOV_STAT = 'EGR')

< AND

En este caso con esta consulta seleccionamos los datos de FACTURA_CABECERA cuando esta sean solo ventas aprobadas.

Filtrar: En este caso filtraremos la informacin segn las ventas que se han realizado a un determinado cliente

SELECT TOP (200) FACTURA_CABECERA.FAC_CAB_USUA, FACTURA_CABECERA.FAC_CAB_TIPO, TIPOS_DE_MOVIMIENTO.TIPMOV_IDEN, AREAS.ARE_STAT, TIPOS_DE_MOVIMIENTO.TIPMOV_STAT FROM FACTURA_CABECERA INNER JOIN AREAS ON FACTURA_CABECERA.FAC_CAB_AREA = AREAS.ARE_IDEN INNER JOIN TIPOS_DE_MOVIMIENTO ON FACTURA_CABECERA.FAC_CAB_TIPO = TIPOS_DE_MOVIMIENTO.TIPMOV_IDEN

WHERE (FACTURA_CABECERA.FAC_CAB_TIPO = 'VE') AND (FACTURA_CABECERA.FAC_CAB_FEFA > CONVERT(DATETIME, '2005-06-30 00:00:00', 102)) AND (FACTURA_CABECERA.FAC_CAB_FEFA < CONVERT(DATETIME, '2007-07-30 00:00:00', 102)) AND (AREAS.ARE_STAT = 1) AND (TIPOS_DE_MOVIMIENTO.TIPMOV_STAT = 'EGR')

Con esta consulta estaremos seleccionando todas las ventas que ha realizado a cada uno de los clientes que intervienen en la empresa.

Profundizar: Para profundizar la informacin hemos optado extraer el nmero de ventas que se han realizado siempre y cuando estas hayan sido ventas a crdito

SELECT TOP (200) FACTURA_CABECERA.FAC_CAB_USUA, FACTURA_CABECERA.FAC_CAB_TIPO, TIPOS_DE_MOVIMIENTO.TIPMOV_IDEN, AREAS.ARE_STAT, TIPOS_DE_MOVIMIENTO.TIPMOV_STAT FROM FACTURA_CABECERA INNER JOIN AREAS ON FACTURA_CABECERA.FAC_CAB_AREA = AREAS.ARE_IDEN INNER JOIN TIPOS_DE_MOVIMIENTO ON FACTURA_CABECERA.FAC_CAB_TIPO = TIPOS_DE_MOVIMIENTO.TIPMOV_IDEN WHERE (FACTURA_CABECERA.FAC_CAB_TIPO = 'VE') AND (FACTURA_CABECERA.FAC_CAB_FEFA > CONVERT(DATETIME, '2005-06-30 00:00:00', 102)) AND (FACTURA_CABECERA.FAC_CAB_FEFA < CONVERT(DATETIME, '2007-07-30 00:00:00', 102)) AND (AREAS.ARE_STAT = 1) AND (TIPOS_DE_MOVIMIENTO.TIPMOV_STAT = 'EGR')

Reporte de Ventas - Ventas por Artculos

Para el informe que se realizar se toma como referencia la tabla FACTURA_DETALLE de esta tabla se seleccionaran todos los datos que seran evaluados dentro del nuestro informe. A continuacin se detallara todo el proceso y todos los requisitos que son necesarios para la creacin del informe. Para nuestro reporte se seleccionaran todas la ventas que se han realizado durante todo el tiempo de actividad de la empresa, para ello hemos tomado como referencia el tipo de Articulo y el movimiento. Esto nos indicara que artculos se ha vendido de una determinada marca DESCRIPCION DEL INFORME: Se describen las dimensiones tales como son las VENTAS Y ARTICULOS. En los cuales en la dimension VENTAS se proporcionaran los campos como TIPO, NOMBRE, DESCUENTO. En la dimension Articulo de proporcionaran los campos tales como CODIGO, DESCRIPCION, COSTO, EXISTENCIA, OBSERVACION VALORES A ANALIZAR

Para los valores a analizar se estan tomando como referencia la venta de un articulos especifico con un determinado descuneto

VALORES A ANALIZAR

VENTAS

- Cantidad de un determinado artculo. - Descuento de artculos.

ARTICULOS CRITERIOS

Segmentacin: En este informe se realiza una segmentacin la cual consiste en la agrupacin de las Ventas que realiza la empresa en un determinado rango de fecha de los artculos que posee la empresa
SELECT dbo.FACTURA_DETALLE.FAC_DET_ARTI, dbo.FACTURA_DETALLE.FAC_DET_DESC, dbo.FACTURA_CABECERA.FAC_CAB_FEFA, dbo.FACTURA_CABECERA.FAC_CAB_TIPO FROM dbo.FACTURA_DETALLE INNER JOIN dbo.FACTURA_CABECERA ON dbo.FACTURA_DETALLE.FAC_DET_AREA = dbo.FACTURA_CABECERA.FAC_CAB_AREA AND dbo.FACTURA_DETALLE.FAC_DET_TIPO = dbo.FACTURA_CABECERA.FAC_CAB_TIPO AND dbo.FACTURA_DETALLE.FAC_DET_NUME = dbo.FACTURA_CABECERA.FAC_CAB_NUME WHERE (dbo.FACTURA_CABECERA.FAC_CAB_FEFA >= '2005 - 06 - 30 14:49:53.0000000' AND dbo.FACTURA_CABECERA.FAC_CAB_FEFA <= '2007 - 07 - 30 14:49:53.0000000')AND (dbo.FACTURA_CABECERA.FAC_CAB_TIPO = 'VE')

Filtrar: En este caso se realiza un filtro segn los movimientos segmentados anteriormente pero seleccionando solo un determinado articulo
SELECT dbo.FACTURA_DETALLE.FAC_DET_ARTI, dbo.FACTURA_DETALLE.FAC_DET_DESC, dbo.FACTURA_CABECERA.FAC_CAB_FEFA, dbo.FACTURA_CABECERA.FAC_CAB_TIPO FROM dbo.FACTURA_DETALLE INNER JOIN dbo.FACTURA_CABECERA ON dbo.FACTURA_DETALLE.FAC_DET_AREA = dbo.FACTURA_CABECERA.FAC_CAB_AREA AND dbo.FACTURA_DETALLE.FAC_DET_TIPO = dbo.FACTURA_CABECERA.FAC_CAB_TIPO AND dbo.FACTURA_DETALLE.FAC_DET_NUME = dbo.FACTURA_CABECERA.FAC_CAB_NUME WHERE (dbo.FACTURA_CABECERA.FAC_CAB_FEFA >= '2005 - 06 - 30 14:49:53.0000000' AND dbo.FACTURA_CABECERA.FAC_CAB_FEFA <= '2007 - 07 - 30 14:49:53.0000000')AND

(dbo.FACTURA_CABECERA.FAC_CAB_TIPO dbo.FACTURA_DETALLE.FAC_DET_ARTI='REPJOY'

'VE')and

Con esta consulta estaremos seleccionando todas las Ventas que ha realizado con un peso determinado

Profundizar: Profundizamos con los parmetros anteriores pero con un descuento especifico
SELECT dbo.FACTURA_DETALLE.FAC_DET_ARTI, dbo.FACTURA_DETALLE.FAC_DET_DESC, dbo.FACTURA_CABECERA.FAC_CAB_FEFA, dbo.FACTURA_CABECERA.FAC_CAB_TIPO FROM dbo.FACTURA_DETALLE INNER JOIN dbo.FACTURA_CABECERA ON dbo.FACTURA_DETALLE.FAC_DET_AREA = dbo.FACTURA_CABECERA.FAC_CAB_AREA AND dbo.FACTURA_DETALLE.FAC_DET_TIPO = dbo.FACTURA_CABECERA.FAC_CAB_TIPO AND dbo.FACTURA_DETALLE.FAC_DET_NUME = dbo.FACTURA_CABECERA.FAC_CAB_NUME WHERE (dbo.FACTURA_CABECERA.FAC_CAB_FEFA >= '2005 - 06 - 30 14:49:53.0000000' AND dbo.FACTURA_CABECERA.FAC_CAB_FEFA <= '2007 - 07 - 30 14:49:53.0000000')AND (dbo.FACTURA_CABECERA.FAC_CAB_TIPO = 'VE')and dbo.FACTURA_DETALLE.FAC_DET_ARTI='REPJOY' AND dbo.FACTURA_DETALLE.FAC_DET_DESC = 100

Con todo este anlisis podemos realizar un informe de venta de un artculo determinado que este dentro de un rango de fecha y de un determinado descuento.

Vous aimerez peut-être aussi