/// <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; } }
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; } }