miércoles, 30 de diciembre de 2015

C# - Insert/Update/Select/SP con Enterprise Library

/********************************INSERT/UPDATE***************************/
public bool GrabaNominaPagoProveedorEnc(BeNominaPagoProveedorEncabezado obj)
        {
            try
            {
                //BeNominaPagoProveedorEncabezado
                var result = false;
                var upd = 0;
                var ins = 0;
                Database db = DatabaseFactory.CreateDatabase("LeaseOper");

                //intento actualizar, de no haber filas afectadas inserto.
                DbCommand command = db.GetSqlStringCommand("UPDATE dbo.t_nomina_pago_proveedor_enc SET numero_nomina = @numero_nomina ,fecha_nomina = @fecha_nomina ,total_nomina = @total_nomina ,envio_contab = @envio_contab ,cod_usuario = @envio_contab,fecha_ingreso_reg = @fecha_ingreso_reg,estado = @estado WHERE numero_nomina = @numero_nomina");
                db.AddInParameter(command, "@numero_nomina", DbType.Int32, obj.NumeroNomina);
                db.AddInParameter(command, "@fecha_nomina", DbType.DateTime, obj.FechaNomina);
                db.AddInParameter(command, "@total_nomina", DbType.Single, obj.TotalNomina);
                db.AddInParameter(command, "@envio_contab", DbType.Int32, obj.EnvioContab);
                db.AddInParameter(command, "@cod_usuario", DbType.Int32, obj.CodUsuario);
                db.AddInParameter(command, "@fecha_ingreso_reg", DbType.DateTime, obj.FechaIngreso);
                db.AddInParameter(command, "@estado", DbType.Int16, obj.Estado);

                upd = db.ExecuteNonQuery(command);

                if (upd == 0)
                {
                    command =
                        db.GetSqlStringCommand(
                            "INSERT INTO dbo.t_nomina_pago_proveedor_enc ( numero_nomina ,fecha_nomina ,total_nomina ,envio_contab ,cod_usuario ,fecha_ingreso_reg ,estado) VALUES ( @numero_nomina ,@fecha_nomina ,@total_nomina ,@envio_contab ,@cod_usuario ,@fecha_ingreso_reg ,@estado)");
                    db.AddInParameter(command, "@numero_nomina", DbType.Int32, obj.NumeroNomina);
                    db.AddInParameter(command, "@fecha_nomina", DbType.DateTime, obj.FechaNomina);
                    db.AddInParameter(command, "@total_nomina", DbType.Single, obj.TotalNomina);
                    db.AddInParameter(command, "@envio_contab", DbType.Int32, obj.EnvioContab);
                    db.AddInParameter(command, "@cod_usuario", DbType.Int32, obj.CodUsuario);
                    db.AddInParameter(command, "@fecha_ingreso_reg", DbType.DateTime, obj.FechaIngreso);
                    db.AddInParameter(command, "@estado", DbType.Int16, obj.Estado);

                    ins = db.ExecuteNonQuery(command);
                }
                //compruebo si hubo actualización o inserción
                if (upd > 0 || ins > 0)
                    result = true;

                //cierro las conexiones
                command.Connection.Close();
                command.Connection.Dispose();
                //devuelvo el resultado
                return result;
            }
            catch (Exception ex)
            {

                return false;
            }
        }

/********************************SELECT***************************/
   public DataTable SelectReqPagoDetalle(int numeroReq)
        {
            DataSet ds = new DataSet();
            var dt = new DataTable();
            try
            {
                var result = false;
                var upd = 0;
                var ins = 0;
                Database db = DatabaseFactory.CreateDatabase("LeaseOper");

                //intento actualizar, de no haber filas afectadas inserto.
                DbCommand command =
                    db.GetSqlStringCommand(
                        "SELECT corrrelativo ,num_req ,monto ,rut_beneficiario ,digito ,nombre_beneficiario ,modo_pago ,cod_inst_financ ,cta_cte ,cod_sucursal ,cuenta_contable ,observacion ,envio_contab ,envio_banco ,fecha_envio_banco ,usuario_envio_banco ,fecha_ingreso_reg ,estado FROM  leaseoper..t_req_pago_detalle WHERE num_req = @num_req");
                db.AddInParameter(command, "@num_req", DbType.Int32, numeroReq);

                ds = db.ExecuteDataSet(command);

                command.Connection.Close();
                command.Connection.Dispose();
            }
            catch (Exception ex)
            {
                throw ex;
            }
         
            if (ds != null && ds.Tables.Count > 0)
            {
                dt = ds.Tables[0];
            }
            return dt;
        }

/********************************SP*************************************/

 public DataTable ValidayCargaExcelDetalleAnticipo(int idAnticipo, Int16 tipoProceso, DataTable dt)
        {
            Database db = DatabaseFactory.CreateDatabase("LeaseOper");
            var ds = new DataSet();
            var retorno = false;
            var dataTable = new DataTable();
            try
            {
                using (var cnxx = new SqlConnection(db.ConnectionString))
                {
                    SqlCommand cmd = new SqlCommand("pa_lo_valida_y_carga_det_insc_trans", cnxx);
                    cmd.CommandType = CommandType.StoredProcedure;                
               

                    db.AddInParameter(cmd, "@id_anticipo", DbType.Int32, idAnticipo);
                    db.AddInParameter(cmd, "@tipo_proceso", DbType.Int16, tipoProceso);
                    db.AddOutParameter(cmd, "@cod_error", DbType.Int32, int.MaxValue);
                    db.AddOutParameter(cmd, "@desc_error", DbType.String, int.MaxValue);

                    cmd.Connection.Open();
                    SqlDataAdapter theDataAdapter = new SqlDataAdapter(cmd);

                    //var mensaje = db.GetParameterValue(cmd, "@cod_error");
                    //var codigoRespuesta = db.GetParameterValue(cmd, "@desc_error");

                    theDataAdapter.Fill(ds);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            if (ds.Tables[0].Rows.Count > 0)
                return ds.Tables[0];
            return dataTable;
        }

lunes, 21 de diciembre de 2015

C# - Obtener valor desde una celda, en un row seleccionado (GRID)

var numMinuta = gvParent.GetRowValues(gvParent.FocusedRowIndex,
"ID_MINUTA");

miércoles, 9 de diciembre de 2015

C# - Gif cargando al presionar botón

//previo al update panel de la pagina.
<div class="centrar">
        <asp:UpdatePanel ID="udpanel" runat="server">
            <ContentTemplate>
                <dx:ASPxButton ID="btnLoad" runat="server" ClientInstanceName="btnLoad" Text="" ClientVisible="false"
                    AutoPostBack="true" OnClick="btnLoad_Click">
                </dx:ASPxButton>
                <asp:UpdateProgress ID="UpdateProgress1" runat="server">
                    <ProgressTemplate>
                        <table width="100%" border="0" cellpadding="0" cellspacing="0" class="bonder">
                            <tr>
                                <td colspan="3">&nbsp;
                                 
                                </td>
                            </tr>
                            <tr>
                                <td width="30">&nbsp;
                                 
                                </td>
                                <td align="center">
                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" class="td-colum">
                                        <tr>
                                            <td align="center" style="color: white; font-weight: bold">
                                                Cargando
                                            </td>
                                        </tr>
                                        <tr>
                                            <td align="center">
                                                <dx:ASPxImage ID="ASPxImage1" runat="server" ImageUrl="~/Images/carga.gif" Width="160px"
                                                    Height="24">
                                                </dx:ASPxImage>
                                            </td>
                                        </tr>
                                    </table>
                                </td>
                                <td width="30">&nbsp;
                                 
                                </td>
                            </tr>
                            <tr>
                                <td colspan="3">&nbsp;
                                 
                                </td>
                            </tr>
                        </table>
                    </ProgressTemplate>
                </asp:UpdateProgress>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
  <asp:UpdatePanel ID="UpdatePanel1" runat="server">
//contenido, eventos y botones de la página
 </asp:UpdatePanel>

miércoles, 2 de diciembre de 2015

C# - DEVEXPRESS Evitar que una grilla se llene por primera vez

//PAGE INIT , la grilla tiene un evento selecting, con este evento se puede cancelar la carga la primera vez.

 protected void Page_Init(object sender, EventArgs e)
        {
            ObjDataDocumentos.Selecting += ObjDataSourceDocumentos_Selecting;      
         
        }


//dentro de este evento cancelo la carga si es la primera vez que entro a la pantalla
  void ObjDataSourceDocumentos_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            if (IsPostBack)
            {
                e.InputParameters["todos"] = Convert.ToByte(chkTodos.Checked == true ? 1 : 0);            
            }
            else
            {
                e.Cancel = true;
            }
        }

martes, 1 de diciembre de 2015

SQL - Tablas con registros en la Base de Datos

--USE BASE_DE_DATOS
SET NOCOUNT ON DBCC UPDATEUSAGE(0) -- DB size.
--EXEC sp_spaceused-- Table row counts and sizes.
CREATE TABLE #t (     [name] NVARCHAR(128),  
 [rows] CHAR(11),  
 reserved VARCHAR(18),    
 data VARCHAR(18),    
 index_size VARCHAR(18),  
 unused VARCHAR(18))
INSERT #t EXEC sp_msForEachTable 'EXEC sp_spaceused ''?'''
SELECT 'TABLAS CON MAS DE UN REGISTRO',* FROM   #t WHERE rows > 0   -- # of rows.
SELECT COUNT(*) AS tablas_con_datos FROM   #t WHERE rows > 0
DROP TABLE #t

jueves, 26 de noviembre de 2015

C# - Obtener string de conexión desde la BD para mostrarlo en APP

ejemplo web.config
<add name="nombreConexion" connectionString="metadata=res://*/Model.ModelAdm.csdl|res://*/Model.ModelAdm.ssdl|res://*/Model.ModelAdm.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=BD-PRODUCCION\GESTION;initial catalog=BDGESTION;user id=sa;password=123456;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 


método.
public string ObtenerConexionBD()
        {
            var conectado = ConfigurationManager.ConnectionStrings["nombreConexion"].ToString().Split(';');
            var dataSource = conectado[0].Replace("Data source=", string.Empty).ToString();

            return dataSource;
        }

viernes, 30 de octubre de 2015

C# - Fecha Universal para SQL desde el Código

  public string FechaGenerica(string obj)
        {
            var año = Convert.ToDateTime(obj).Year;
            var mes = Convert.ToDateTime(obj).Month;
            var dia = Convert.ToDateTime(obj).Day;

            var fechaGen = año.ToString() + mes.ToString() + dia.ToString();
            return fechaGen;
        }

//ejemplo de llamada
  var fIni = FechaGenerica(dteFechIni.Text);

viernes, 16 de octubre de 2015

C# - Inicializar una Session

 //Session
        private UserSessionBc UserSession
        {
            get { return (UserSessionBc)Session["UserSession"]; }
        }

lunes, 5 de octubre de 2015

C# - Atributos de una Clase echa a mano

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;      

namespace Test.Be.Garra
{
    public class Garae004Be
    {

        public string Usuario { get; set; }
        public int Terminal { get; set; }
        public Single Canal { get; set; }


    }
}

domingo, 27 de septiembre de 2015

SQL - Trigger Update

/*Tanto para INSERT y UPDATE la tabla usada en los TRIGGER es INSERTED. para los delete es DELETED*/
USE [Gestion]
GO
/****** Object:  Trigger [dbo].[upd_requerimientos]    Script Date: 27/09/2015 12:02:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Create Trigger (New Menu).SQL
  ALTER TRIGGER [dbo].[upd_requerimientos] ON [dbo].[REQUERIMIENTO]
 AFTER UPDATE
 AS
 BEGIN


  DECLARE @id_requerimiento INT
         ,@id_archivo INT

  SELECT @id_requerimiento = ID_REQUERIMIENTO
        ,@id_archivo = ID_ARCHIVO
  FROM inserted

  UPDATE Gestion..REL_REQUERIMIENTO_ARCHIVO
  SET ID_ARCHIVO = @id_archivo
  WHERE ID_REQUERIMIENTO = @id_requerimiento

 END




/************************************************************************/
/*TABLAS AFECTADAS PARA TENER UNA IDEA*/
CREATE TABLE [dbo].[REQUERIMIENTO](
[ID_REQUERIMIENTO] [int] IDENTITY(1,1) NOT NULL,
[ID_PROYECTO] [int] NULL,
[NOMBRE_REQUERIMIENTO] [varchar](max) NULL,
[DESCRIPCION_REQUERIMIIENTO] [varchar](max) NULL,
[TIPO_REQUERIMIENTO] [varchar](50) NULL,
[ESTADO] [tinyint] NULL,
[ID_ARCHIVO] [int] NULL,
 CONSTRAINT [PK_REQUERIMIENTO] PRIMARY KEY CLUSTERED
(
[ID_REQUERIMIENTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]



CREATE TABLE [dbo].[REL_REQUERIMIENTO_ARCHIVO](
[ID] [int] IDENTITY(1,1) NOT NULL,
[ID_REQUERIMIENTO] [int] NULL,
[ID_ARCHIVO] [int] NULL,
 CONSTRAINT [PK_REL_REQUERIMIENTO_ARCHIVO] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]