Está en la página 1de 4

UNIVERSIDAD POPULAR DEL CESAR

PROGRAMACIÓN III 2019-II


EXAMEN FINAL

Nombre Completo:_________________________________________________________________

1. Enunciado del Parcial.

La empresa de Gases del caribe requiere liquidar el valor a pagar de sus contratistas de acuerdo al servicio de
mantenimiento. El valor por servicio es el siguiente.

Código Servicio de Mantenimiento Valor


01 Conexión $30.000
02 Reconexión $20.000
03 Suspensión $10.000

La empresa cuenta con diferentes sucursales, cada una de las deben realizar el reporte de servicio prestado por
sus contratistas a la sede principal. Las sucursales son las siguientes:

Código Nombre Sucursal


Sucursal
20001 Sucursal Barranquilla
05001 Sucursal Santa Marta
17001 Sucursal Valledupar

Con el fin de realizar el reporte, cada sucursal mensualmente reporta un archivo plano en el que se encuentra:
código de sucursal, Identificación del contratista, nombre contratista, NIC del lugar donde se realizó el servicio,
fecha del Servicio, código del servicio y valor.

Este archivo debe ser validado y cargado por lo que se debe solicitar previo al cargue sede, mes del reporte y
año del reporte. A partir de estos datos se deberá validar que:
a) El valor del servicio de mantenimiento coincida con el código reportado en el archivo.
b) El mes y el año del reporte debe coincidir con la fecha del servicio reportada en el archivo.
c) La sede debe coincidir con la sede reportada en el archivo.
UNIVERSIDAD POPULAR DEL CESAR
PROGRAMACIÓN III 2019-II
EXAMEN FINAL

Nombre Completo:_________________________________________________________________

2. Resolver
a) (Valor 2.5) Realizar la interfaz gráfica de usuario necesaria para cargar y validar cada uno de los servicios
realizados por los contratistas de cada sede a una base de datos. La interfaz debe solicitar sede a
reportar, mes y año del reporte de liquidación y cargar el archivo seleccionado a través de un
OpenFileDialog que se visualizara al presionar el botón cargar.

Si todos los datos cargan correctamente Si los datos presentan inconsistencias generar un
archivo llamado Log.txt solo con los registros
inconsistentes y cargar los demás a la BD

b) (Valor 2.5) Realizar la consulta de la liquidación de cada contratista en la que se visualizara Identificación
del Contratista, Nombre del contratista, mes de liquidación, año de liquidación y valor a pagar filtrada por
vigencia, sede y mes.
UNIVERSIDAD POPULAR DEL CESAR
PROGRAMACIÓN III 2019-II
EXAMEN FINAL

Nombre Completo:_________________________________________________________________

3. Ayudas.
a) Abrir el control OpenFileDialog
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.ShowDialog();
var ruta = fileDialog.FileName;//Obtener la ruta

b) Sentecncia Sql para la consulta.


select sede, Identificacion, Nombre,year(fecha)as Vigencia, month(fecha) as Mes,
sum(valor) as Liquidacion from baseliquidacion group by sede, Identificacion, Nombre,
year(fecha), month(fecha) having year(fecha)=@vigencia and month(fecha)=@mes and
sede=@sede

c) Sacar el Mes y Vigencia de una atributo fecha


d) Para guardar la fecha en el archivo con el formato requerido puede utilizar
FechaServicio.ToShortDateString() o FechaPago.ToString("dd/MM/yyyy").
e) Para extraer el mes de un DateTime utilice fecha.Month y para extraer el año de un

f) Leer y guardar Archivo Plano

public void Guardar(Recaudo recaudo)


{
FileStream origen = new FileStream(ruta, FileMode.Append);
StreamWriter writer = new StreamWriter(origen);
writer.WriteLine(recaudo.Entidad + ";" + recaudo.NumeroRecibo + ";" +
recaudo.FechaPago.ToString("dd/MM/yyyy") + ";" + recaudo.ValorPago);
writer.Close();
origen.Close();
}

public List<Recaudo> Consultar()


{
List<Recaudo> recaudos = new List<Recaudo>();
FileStream origen = new FileStream(ruta, FileMode.OpenOrCreate);
StreamReader reader = new StreamReader(origen);
string linea=string.Empty;
while ((linea = reader.ReadLine()) != null)
{
Recaudo recaudo = Mapear(linea);
recaudos.Add(recaudo);
}
reader.Close();
origen.Close();
return recaudos;
}

private Recaudo Mapear(string linea)


{
string[] datos = linea.Split(';');
UNIVERSIDAD POPULAR DEL CESAR
PROGRAMACIÓN III 2019-II
EXAMEN FINAL

Nombre Completo:_________________________________________________________________

Recaudo recaudo = new Recaudo();


recaudo.Entidad = datos[0];
recaudo.NumeroRecibo = datos[1];
recaudo.FechaPago = DateTime.Parse(datos[2]);
recaudo.ValorPago = decimal.Parse(datos[3]);
return recaudo;
}

También podría gustarte