public List <LineaPago> ListarFacturas(int _NumeroInterno, string usuario, string clave) { List <LineaPago> listaFacturas = null; using (SqlConnection cnn = new SqlConnection(Conexion.Cnn(usuario, clave))) { using (SqlCommand cmd = new SqlCommand("ListarFacturas", cnn)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@NumeroInterno", _NumeroInterno); try { cnn.Open(); using (SqlDataReader reader = cmd.ExecuteReader()) { if (reader.HasRows) { listaFacturas = new List <LineaPago>(); while (reader.Read()) { LineaPago _LineaPago = new LineaPago(Convert.ToInt32(reader["Monto"]), Convert.ToDateTime(reader["FechaVencimiento"]), Convert.ToInt32(reader["CodCliente"]), PContrato.GetInstancia().BuscarContrato(Convert.ToInt32(reader["CodigoEmpresa"]), Convert.ToInt32(reader["TipoContrato"]), usuario, clave)); listaFacturas.Add(_LineaPago); } } } } catch (Exception ex) { throw new Exception(ex.Message); } } } return(listaFacturas); }
private void AddCodigo_Click(object sender, EventArgs e) { try { int largo = TxtCodigoBar.Text.Length; if (largo < 21) { throw new Exception("El codigo de barra debe contener al menos 21 digitos."); } else { int CodigoEmp = Convert.ToInt32(TxtCodigoBar.Text.Trim().Substring(0, 4)); int TipoCon = Convert.ToInt32(TxtCodigoBar.Text.Trim().Substring(4, 2)); DateTime FechaVen = new DateTime(Convert.ToInt32(TxtCodigoBar.Text.Trim().Substring(6, 4)), Convert.ToInt32(TxtCodigoBar.Text.Trim().Substring(10, 2)), Convert.ToInt32(TxtCodigoBar.Text.Trim().Substring(12, 2))); if (FechaVen.CompareTo(DateTime.Today) < 0) { throw new Exception("No se pueden cobrar facturas vencidas."); } int Cli = Convert.ToInt32(TxtCodigoBar.Text.Trim().Substring(14, 6)); int Monto = 0; if (largo == 21) { Monto = Convert.ToInt32(TxtCodigoBar.Text.Trim().Substring(20, 1)); } else if (largo == 22) { Monto = Convert.ToInt32(TxtCodigoBar.Text.Trim().Substring(20, 2)); } else if (largo == 23) { Monto = Convert.ToInt32(TxtCodigoBar.Text.Trim().Substring(20, 3)); } else if (largo == 24) { Monto = Convert.ToInt32(TxtCodigoBar.Text.Trim().Substring(20, 4)); } else if (largo == 25) { Monto = Convert.ToInt32(TxtCodigoBar.Text.Trim().Substring(20, 5)); } Empresa emp = SServicio.BuscarEmpresa(CodigoEmp, usu); if (emp == null) { throw new Exception("No se ha encontrado la Empresa"); } Contrato contrato = SServicio.BuscarContrato(emp.Codigo, TipoCon, usu); if (contrato == null) { throw new Exception("No se ha encontrado el contrato"); } LineaPago lpago = new LineaPago(); lpago.Monto = Monto; lpago.FechaVencimiento = FechaVen; lpago.CodigoCliente = Cli; lpago.Contrato = contrato; lpago.CodContrato = contrato.CodContrato.ToString(); //Creo lista auxiliar para verificar que no se repitan facturas List <LineaPago> listaAux = new List <LineaPago>(); if (lpagos.Count > 0) { listaAux = (from o in lpagos where (o.Monto == lpago.Monto && o.FechaVencimiento == lpago.FechaVencimiento && o.CodigoCliente == lpago.CodigoCliente && o.Contrato.CodContrato == lpago.Contrato.CodContrato && o.Contrato.Empresa.Codigo == lpago.Contrato.Empresa.Codigo) select o).ToList(); } //Si tiene elementos cargados es por que ya existe la factura if (listaAux.Count > 0) { throw new Exception("Esta factura ya ha sido ingresada."); } lpagos.Add(lpago); if (TxtTotal.Text == null || TxtTotal.Text.Equals("")) { TxtTotal.Text = Monto.ToString(); } else { long montoTotal = Convert.ToInt64(TxtTotal.Text) + Monto; TxtTotal.Text = montoTotal.ToString(); } } if (lpagos != null) { DGVPagos.DataSource = null; DGVPagos.DataSource = lpagos; } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error"); } }