示例#1
0
        /// <summary>
        /// Registrar los recibos para el periodo indicado
        /// </summary>
        /// <param name="anho">Año en formato yyyy</param>
        /// <param name="mes">Mes en el rango de 1 al 12</param>
        /// <returns></returns>
        public bool Generar(int anho, int mes)
        {
            try
            {
                var lstBeRecibo = new List <BE.Recibo>();

                var daRecibo = new DA.Recibo();

                //Obtener lista detallada de los recibos
                var dtResumenDetalles = daRecibo.Detalle(anho, mes);
                foreach (DataRow item in dtResumenDetalles.Rows)
                {
                    var beRecibo = new BE.Recibo();
                    beRecibo.Anho           = int.Parse(item["anho"].ToString());
                    beRecibo.Mes            = int.Parse(item["Mes"].ToString());
                    beRecibo.CodigoEmpleado = item["CodigoEmpleado"].ToString();
                    beRecibo.Tipo           = item["Tipo"].ToString();
                    beRecibo.Concepto       = item["Concepto"].ToString();
                    beRecibo.Fecha          = DateTime.Parse(item["Fecha"].ToString());
                    beRecibo.Monto          = double.Parse(item["Monto"].ToString());
                    lstBeRecibo.Add(beRecibo);
                }

                //Insertar la lista detallada
                int rowsAffected = daRecibo.Insertar(ref lstBeRecibo);

                return(rowsAffected > 0);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#2
0
        public int Insertar(ref List <BE.Recibo> lstBeRecibos)
        {
            SqlTransaction tns = null;
            SqlCommand     cmd = null;

            try
            {
                int    rowsAffected = 0;
                string sp           = "SpTbReciboInsertar";

                using (SqlConnection cnn = new SqlConnection(ConnectionManager.ConexionLocal))
                {
                    cnn.Open();
                    tns = cnn.BeginTransaction();

                    for (int i = 0; i < lstBeRecibos.Count; i++)
                    {
                        BE.Recibo beRecibo = lstBeRecibos[i];

                        cmd             = new SqlCommand(sp, cnn);
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Transaction = tns;

                        cmd.Parameters.Add(new SqlParameter("@IDRECIBO", beRecibo.IdRecibo));
                        cmd.Parameters["@IDRECIBO"].Direction = ParameterDirection.Output;
                        cmd.Parameters.Add(new SqlParameter("@ANHO", beRecibo.Anho));
                        cmd.Parameters.Add(new SqlParameter("@MES", beRecibo.Mes));
                        cmd.Parameters.Add(new SqlParameter("@CODIGOEMPLEADO", beRecibo.CodigoEmpleado));
                        cmd.Parameters.Add(new SqlParameter("@TIPO", beRecibo.Tipo));
                        cmd.Parameters.Add(new SqlParameter("@CONCEPTO", beRecibo.Concepto));
                        cmd.Parameters.Add(new SqlParameter("@FECHA", beRecibo.Fecha));
                        cmd.Parameters.Add(new SqlParameter("@MONTO", beRecibo.Monto));

                        rowsAffected            += cmd.ExecuteNonQuery();
                        lstBeRecibos[i].IdRecibo = int.Parse(cmd.Parameters["@IDRECIBO"].Value.ToString());
                    }

                    if (tns != null)
                    {
                        tns.Commit();
                    }
                }

                return(rowsAffected);
            }
            catch (Exception ex)
            {
                if (tns != null)
                {
                    tns.Rollback();
                }

                throw ex;
            }
        }