private void ImportarObra(DoWorkEventArgs e) { var lecturaMdb = new Clases.LeerMdb(rutaArchivo); var obras = lecturaMdb.ListarObras(); var i = 1; Exception ex = null; using (var proxy = new ProxyWeb.ServicioPlanillaClient(GlobalVars.PuertoWcf)) { foreach (var obra in obras) { if (BgwImportar.CancellationPending) { e.Cancel = true; break; } var obraImportado = proxy.ImportarObras(obra); if (!obraImportado.EstadoEntidad.Correcto) { e.Cancel = true; ex = obraImportado.EstadoEntidad.ErrorEjecutar; } var a = (i * 100) / obras.Count; BgwImportar.ReportProgress(a, ex); i++; } } }
void ImportarPagos() { _rutaArchivo = txtRuta.Text.Trim(); using (var proxy = new ProxyWeb.ServicioPlanillaClient(GlobalVars.PuertoWcf)) { var listadoObras = proxy.ConsultarObrasLista(GlobalVars.Empresa); //var listadoObreros = proxy.ConsultarCategoriaObreroLista(GlobalVars.Empresa); var listadoPeriodosSistema = proxy.ConsultarPeriodoLista(GlobalVars.Empresa); var objPeriodo = new BePeriodos(); foreach (var obra in listadoObras) //Por cada obra { if (ExisteArchivo(obra.CodigoAntiguo)) { var objLeerMdb = new Clases.LeerMdb(string.Concat(_rutaArchivo, "WPAG", obra.CodigoAntiguo)); var listaSemanasTrabajadas = objLeerMdb.ListarPeriodos(obra.CodigoAntiguo); foreach (var periodo in listaSemanasTrabajadas) //Por cada registro de semanas definidas por cada mes { if (!SincronizarPeriodoSistema(periodo, listadoPeriodosSistema, objPeriodo)) { objPeriodo = proxy.GrabarPeriodos(objPeriodo, true); //Sincroniza periodos del sistema en la importacion listadoPeriodosSistema.Add(objPeriodo); } for (var semana = objPeriodo.SemanaInicio; semana <= objPeriodo.SemanaFin; semana++) // Recorrido de inicio a fin del mes por semanas { var listaCodigoTrabajadorSemana = objLeerMdb.ListarCodigoSemanaDelObrero(semana.ToString("00"), objPeriodo.Anio.ToString("####")); var listaPagoTrabajadoresSemana = objLeerMdb.ListarPagoObreroSemana(semana.ToString("00"), objPeriodo.Anio.ToString("####")); foreach (var codigoEquivalencia in listaCodigoTrabajadorSemana) //Recorriendo tabla de equivalencias de codigo y trabajadores para importar { var objTrabSemana = listaPagoTrabajadoresSemana.Find( x => x.CodigoObra == codigoEquivalencia.CodigoSemana); var objPeriodosDeObra = new BePeriodosDeObras { Empresa = GlobalVars.Empresa, Obra = obra, Periodo = objPeriodo }; objPeriodosDeObra.UsuarioCreador = objPeriodosDeObra.UsuarioModificador = GlobalVars.Usuario; objPeriodosDeObra.FechaCreacion = objPeriodosDeObra.FechaModificacion = DateTime.Now; objPeriodosDeObra.Obrero = new BeMaestroObrero { CodigoAlterno = codigoEquivalencia.Codigo, Empresa = GlobalVars.Empresa }; objPeriodosDeObra.Jornal = objTrabSemana.Jornal; objPeriodosDeObra.Dominical = objTrabSemana.Dominical; objPeriodosDeObra.DescansoMedico = objTrabSemana.DescansoMedico; objPeriodosDeObra.Feriado = objTrabSemana.Feriado; objPeriodosDeObra.Buc = objTrabSemana.Buc; objPeriodosDeObra.Altura = objTrabSemana.Altura; objPeriodosDeObra.Agua = objTrabSemana.Agua; objPeriodosDeObra.Pasaje = objTrabSemana.Pasaje; objPeriodosDeObra.Escolar = objTrabSemana.Escolar; objPeriodosDeObra.Movilidad = objTrabSemana.Movilidad; objPeriodosDeObra.HoraExtra = objTrabSemana.HoraExtra; objPeriodosDeObra.Reintegro = objTrabSemana.Reintegro; objPeriodosDeObra.Vacaciones = objTrabSemana.Vacaciones; objPeriodosDeObra.Gratificacion = objTrabSemana.Gratificacion; objPeriodosDeObra.Viatico = objTrabSemana.Viatico; objPeriodosDeObra.Sepelio = objTrabSemana.Sepelio; objPeriodosDeObra.Altitud = objTrabSemana.Altitud; objPeriodosDeObra.Ley29351 = objTrabSemana.Ley29351; //objPeriodosDeObra = proxy.ImportarPagosDeObras(objPeriodosDeObra); //Evaluar si existe error } } } } else { MessageBox.Show(string.Format("No existe archivo para {0}", obra.DireccionObra), @"Buscar Archivo Obra", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }