lunes, 9 de septiembre de 2013

Tips Para C#

Para todos los programadores adictos a las Grid, aqui les traigo un metodo sencillo de agregar Items.

  private void AgregarArticulo() {
        string estado = hidEstadoArticulo.Value;
        List<movimiento_detalle> lista = ActualizarGridArticulo(estado);
        if (estado.Equals("N"))
        {
            string[] patron = { "<@ARTICULO@>" };
            string[] datos = hidListaArticulo.Value.Split(patron, System.StringSplitOptions.None);
            foreach (string s in datos)
            {
                if (s != "")
                {
                    movimiento_detalle item = ObtenerItemArticulo(s);
                    if (item != null)
                    {

                        lista.Add(item);
                    }
                }
            }
        }
        FillGridDetalle(lista);
        hidAccion.Value = "";
        hidEstadoArticulo.Value = "";
        hidFilaEditar.Value = "";
    }

    private movimiento_detalle ObtenerItemArticulo(string articulo_info)
    {
        if (articulo_info == "") return null;
        movimiento_detalle item = new movimiento_detalle();
        string[] datos = articulo_info.Split('|');
        int i = -1;
        ++i;
        item.Id_articulo = Convert.ToInt32(datos[i]);
        ++i;
        item.Articulo_des = datos[i];
        return item;
    }

    private List<movimiento_detalle> ActualizarGridArticulo(string estado)
    {
        List<movimiento_detalle> lista = new List<movimiento_detalle>();
        int filas = rgDetalle.Rows.Count;
        for (int i = 0; i < filas; i++)
        {
            GridViewRow r = rgDetalle.Rows[i];
            if (r.RowType == DataControlRowType.DataRow)
            {
                Label lblIdDetalle = (Label)r.FindControl("lblIdDetalle");
                movimiento_detalle item = new movimiento_detalle();
                if (estado.Equals("D") && hidFilaEditar.Value.ToString().Equals(lblIdDetalle.Text)) item = null;
                else
                {
                    int id_articulo = Convert.ToInt32(((Label)r.FindControl("lblIDArticulo")).Text);
                    item.Articulo_des = ((Label)r.FindControl("lblArticuloDes")).Text;
                    item.Cantidad = Convert.ToInt32(((TextBox)r.FindControl("txtCantidad")).Text.Trim());
                }
                if (item != null) lista.Add(item);
            }
        }
        return lista;
    }

Y para recuperar los datos:

    private SCM_ORDEN_COMPRA_DETALLEList ObtenerDatosListaArticulo(int id_empresa)
    {
        SCM_ORDEN_COMPRA_DETALLEList lista = new SCM_ORDEN_COMPRA_DETALLEList();
        int filas = dgArticulo.Rows.Count;
        int numero_fila = 0;
        for (int i = 0; i < filas; i++)
        {
            GridViewRow r = dgArticulo.Rows[i];
            if (r.RowType == DataControlRowType.DataRow)
            {
                TextBox txtMontoUnitario = (TextBox)r.FindControl("txtMontoUnitario");
                TextBox txtCantidadSolicitada = (TextBox)r.FindControl("txtCantidadSolicitada");
                TextBox txtReferencia = (TextBox)r.FindControl("txtReferencia");

                DropDownList ddlCentroActividad = (DropDownList)r.FindControl("ddlCentroActividad");
                DropDownList ddlUnidadMedida = (DropDownList)r.FindControl("ddlUnidadMedida");
                DropDownList ddlIGV = (DropDownList)r.FindControl("ddlIGV");
                Label lblIDArticulo = (Label)r.FindControl("lblIDArticulo");
                Label lblIDActivo = (Label)r.FindControl("lblIDActivo");
                SCM_ORDEN_COMPRA_DETALLE item = new SCM_ORDEN_COMPRA_DETALLE();
                int id_tipo_detalle = Funciones.CheckInt(((Label)r.FindControl("lblIdTipoDetalle")).Text);
                int id_articulo = Funciones.CheckInt(lblIDArticulo.Text);
                int id_activo_fijo = Funciones.CheckInt(lblIDActivo.Text);
                item.ID_TIPO_DETALLE = id_tipo_detalle;
                decimal monto_unitario = Funciones.CheckDecimal(txtMontoUnitario.Text.Trim());
                item.MONTO_UNITARIO_REAL_MN = monto_unitario;
                item.MONTO_UNITARIO_MN = monto_unitar;
                item.REFERENCIA = txtReferencia.Text.Trim().ToUpper();
                item.CON_IGV = ddlIGV.SelectedValue;
                item.ID_EMPRESA = id_empresa;
                item.ID_ORDEN_COMPRA_DETALLE = ++numero_fila;
                lista.Add(item);
            }
        }
        return lista;
    }

Como validar un CheckList en c#

Muchos de nostros hemos tenido alguna vez problemas validando checkList en Javascript, a continuacion les dejo un metodo simple y consiso sobre como hacerlo.

        function Aceptar() {
            var datos = '';
            var lista = '';
            if (validardatos()) {
                var chkList = document.getElementById('chkList');
                var chk = chkList.getElementsByTagName("input");
                for (var i = 0; i < chk.length; i++) {
                    if (chk[i].checked) {
                        datos = chk[i].value;
                        lista = lista + '<@articulo@>' + datos;
                    }
                }
            }
            window.opener.RetornarArticulo(lista);
            window.close();
         }

         function validardatos() {
             var chkList = document.getElementById('chkList');
             var chk = chkList.getElementsByTagName("input");
             for (var i = 0; i  < chk.length; i++ ) {
                 if (chk[i].checked == true) {
                     return true;
                 }
             }
             alert("Seleccione al menos un Articulo");
             return false;
         }

Son dos funciones en Javascript una que valida y otra que envia los datos de las opcviones seleccionadas a la pagina anterior.

domingo, 8 de septiembre de 2013

Para todos los Programadores en C#

Tengan ustedes buenos días,

A continuación les dejo algunas clases para que puedan conectarse a su base de datos sin problemas desde codigo C#.

Conexion.cs


public class Conexion
    {
        static string cadenaConexion = @"Data Source=PC;Initial Catalog=BDD;User ID=sa;Password=****";

        public static string CadenaConexion
        {
            get { return cadenaConexion; }
        }

    }

Luego Procedemos a crear una Clase Métodos, que tendra dentro dos metodos, uno sera para poder hacer referencia a un Store Procedure y el segundo para ejecutar sentencias como insert, delete, update.

Metodos.cs

    public class Metodos
    {
        public static SqlCommand CrearComandoProc()
        {
            string _cadenaConexion = Conexion.CadenaConexion;
            SqlConnection _conexion = new SqlConnection(_cadenaConexion);
            SqlCommand _comando = new SqlCommand("", _conexion);
            _comando.CommandType = CommandType.StoredProcedure;
            return _comando;
        }

        public static int EjecutarComando(SqlCommand comando)
        {
            try
            {
                comando.Connection.Open();
                return comando.ExecuteNonQuery();
            }
            catch { throw; }
            finally
            {
                comando.Connection.Dispose();
                comando.Connection.Close();
            }
        }
    }

Luego de esto solo queda la capa de Presentacion y la Capa de enlace de Datos para que nuestra aplicacion pueda ser utilizada. 
Espero haya servido de ayuda.
Hasta otra oportunidad.

domingo, 13 de noviembre de 2011

viernes, 11 de noviembre de 2011

Gestión de Proyectos - PMI

 (Imagen de : watchdogwag.com)
Gestión de Proyectos:
STAKEHOLDERS
La Gestión de Proyectos es un tema muy amplio a tratar, podemos mencionar desde la Gerencia de Sub-Proyectos que vendría a ser el primer nivel de esta gran pirámide, hasta la Gerencia Organizacional de Proyectos donde se gestionan los Portafolios ( varios proyectos apuntando a diversos temas ).
Los Proyectos si bien sabemos son muy importantes para el desarrollo tanto social, económico e intelectual en nuestra sociedad, los podemos definir como un esfuerzo temporal  ya que solo tienen un tiempo limitado para crear un producto o servicio único, por medio de entregables definidos.
Para la realización de estos intervienen varios agentes: sponsor, stakeholders, clientes, proveedores, comité de proyectos entre otros.
En esta entrada, enfatizaremos la importancia de los stakeholders, son todas aquellos involucrados positiva o negativamente en el proyecto, con al menos un 1% de participación, como ejemplos de estos podemos mencionar a los empleados, inversionistas, generadores de opinión, etc.
Un punto muy importante a resaltar, y que no se ha estado tomando en cuenta, es que el pueblo o la comunidad donde se realizara el proyecto, es un muy importante stakeholder, muchas empresas al momento de realizar proyectos olvidan este punto tan importante ocasionando conflictos y descuerdos entre estos.
Conflictos tan grandes que ocasionan cierres de carreteras y paralizaciones en las obras, como vemos actualmente en las grandes mineras, todo esto se pudo haber evitado con un buen estudio realizado sobre los stakeholders tomando en cuenta cada detalle a realizar en el proyecto.