/// <summary> /// Descripción: Registrar informacion de muestras sin estar recepcionadas. /// Author: Terceros. /// Fecha Creacion: 01/01/2017 /// Fecha Modificación: 02/02/2017. /// Modificación: Se agregaron comentarios. /// </summary> /// <param name="listaMuestrasRegistrarT"></param> /// <param name="idOrden"></param> /// <param name="idUsuario"></param> public void RegistrarMuestrasSinRecepcion(List <OrdenMuestraRecepcion> listaMuestrasRegistrarT, Guid idOrden, int idUsuario) { using (var ordenMuestraDal = new OrdenMuestraDal()) { ordenMuestraDal.RegistrarMuestrasSinRecepcion(listaMuestrasRegistrarT, idOrden, idUsuario); } }
public string OrdenMuestraProcesoRom(OrdenMuestraRom xOrdenMuestraRom, Guid id, int idusuario, int IdEstablecimiento) { string Respuesta = ""; var totalMuestrasValidasR = 0; var totalMuestrasInvalidasR = 0; var totalMuestrasRecepcionadas = 0; var totalMuestras = 0; using (var ordenMuestraDal = new OrdenMuestraDal()) { ordenMuestraDal.BeginTransaction(System.Data.IsolationLevel.ReadCommitted); try { //Referenciar muestras if (xOrdenMuestraRom.listaOrdenesMuestra.Count > 0) { totalMuestrasInvalidasR = ValidaExamenes(1, xOrdenMuestraRom.listaOrdenesMuestra); if (totalMuestrasInvalidasR > 0) { ordenMuestraDal.Rollback(); return(totalMuestrasInvalidasR + "_" + totalMuestrasRecepcionadas + "_" + totalMuestras + "_" + ExamenError); } else { ordenMuestraDal.ReferenciarMuestras(xOrdenMuestraRom.listaOrdenesMuestra, idusuario); } } //Crear y Referenciar muestras if (xOrdenMuestraRom.listaOrdenesMuestraCrearReferenciar.Count > 0) { totalMuestrasInvalidasR = ValidaExamenes(2, xOrdenMuestraRom.listaOrdenesMuestraCrearReferenciar); if (totalMuestrasInvalidasR > 0) { ordenMuestraDal.Rollback(); return(totalMuestrasInvalidasR + "_" + totalMuestrasRecepcionadas + "_" + totalMuestras + "_" + ExamenError); } else { ordenMuestraDal.RegistrarMuestras(xOrdenMuestraRom.listaOrdenesMuestraCrearReferenciar, id, idusuario); } } //Derivar muestras juan muga //revisar si se puede colocar mas abajo, donde se valida la variable lstNewGuid var lstNewGuid = new List <OrdenMuestraRecepcion>(); if (xOrdenMuestraRom.listaOrdenesDerivarMuestra.Count > 0) { totalMuestrasInvalidasR = ValidaExamenes(2, xOrdenMuestraRom.listaOrdenesDerivarMuestra); if (totalMuestrasInvalidasR > 0) { ordenMuestraDal.Rollback(); return(totalMuestrasInvalidasR + "_" + totalMuestrasRecepcionadas + "_" + totalMuestras + "_" + ExamenError); } else { lstNewGuid = ordenMuestraDal.DerivarReferenciaMuestras(xOrdenMuestraRom.listaOrdenesDerivarMuestra, idusuario); } } //Recepcion de Muestras if (xOrdenMuestraRom.listaOrdenesMuestraRecepcionar.Count > 0) { //Obtener Lista de Examenes válidos por el laboratorio seleccionado var laboratorioExamenBl = new LaboratorioExamenBl(); var TipoMuestraExamenBl = new ExamenTipoMuestraBl();//juanmuga var listaExamenesValidos = laboratorioExamenBl.GetExamenesByLaboratorio(IdEstablecimiento); if (listaExamenesValidos != null) { foreach (var itemR in xOrdenMuestraRom.listaOrdenesMuestraRecepcionar) { var listaTipoMuestraValidosTmp = TipoMuestraExamenBl.GetTipoMuestraByExamen(itemR.idExamen); //juan muga var examenValido = listaExamenesValidos.FindAll(p => p.IdExamen == itemR.idExamen); var tipomuestraValido = listaTipoMuestraValidosTmp.FindAll(p => p.IdTipoMuestra == itemR.idTipoMuestra); //juan muga //if (examenValido.Any()) if (examenValido.Any() && tipomuestraValido.Any())//juanmuga { xOrdenMuestraRom.listaParaReferenciarCrear.Add(itemR); totalMuestrasValidasR = totalMuestrasValidasR + 1; } else { totalMuestrasInvalidasR = totalMuestrasInvalidasR + 1; ExamenError = ExamenError + ", " + new ExamenBl().GetExamenById(itemR.idExamen).nombre; } } } //Existe muestras a rececepcionar válidas if (xOrdenMuestraRom.listaParaReferenciarCrear.Any()) { totalMuestrasRecepcionadas = xOrdenMuestraRom.listaParaReferenciarCrear.Count; //derivar: cambio de guid = idordenmuestrarecpcionar juan muga var listaParaDerivar = new List <OrdenMuestraRecepcion>(); foreach (var item in xOrdenMuestraRom.listaParaReferenciarCrear) { foreach (var itemD in lstNewGuid) { if (item.idOrdenMuestraRecepcion == itemD.idOrdenMuestraRecepcion) { item.idOrdenMuestraRecepcion = itemD.NewidOrdenMuestraRecepcion; listaParaDerivar.Add(item); } } } if (listaParaDerivar.Count > 0) { ordenMuestraDal.RecepcionarMuestras(listaParaDerivar, id, 1, idusuario); } if (xOrdenMuestraRom.listaParaReferenciarCrear.Count > 0) { ordenMuestraDal.RecepcionarMuestras(xOrdenMuestraRom.listaParaReferenciarCrear, id, 1, idusuario); } } } //Crear y Referenciar muestras //if (listaOrdenesMuestraCrearReferenciar.Count > 0) //{ // ordenMuestraBl.RegistrarMuestras(listaOrdenesMuestraCrearReferenciar, Guid.Parse(id), Logueado.idUsuario); //} //Crear y Recepcionar Muestras if (xOrdenMuestraRom.listaOrdenesMuestraCrearRecepcionar.Count > 0) { //Obtener Lista de Examenes válidos por el laboratorio seleccionado var laboratorioExamenBl = new LaboratorioExamenBl(); var TipoMuestraExamenBl = new ExamenTipoMuestraBl(); var listaExamenesValidosTmp = laboratorioExamenBl.GetExamenesByLaboratorio(IdEstablecimiento); if (listaExamenesValidosTmp != null) { foreach (var itemR in xOrdenMuestraRom.listaOrdenesMuestraCrearRecepcionar) { var listaTipoMuestraValidosTmp = TipoMuestraExamenBl.GetTipoMuestraByExamen(itemR.idExamen); var tipomuestraValido = listaTipoMuestraValidosTmp.FindAll(p => p.IdTipoMuestra == itemR.idTipoMuestra);//juanmuga var examenValido = listaExamenesValidosTmp.FindAll(p => p.IdExamen == itemR.idExamen); if (examenValido.Any() && tipomuestraValido.Any())//juan muga { xOrdenMuestraRom.listaParaRecepcionarCrear.Add(itemR); totalMuestrasValidasR = totalMuestrasValidasR + 1; } else { itemR.fechaEnvio = null; itemR.horaEnvio = null; itemR.fechaRecepcion = null; itemR.horaRecepcion = null; xOrdenMuestraRom.listaParaRecepcionarCrearSinRecepcion.Add(itemR); totalMuestrasInvalidasR = totalMuestrasInvalidasR + 1; } } } //Crear y Recepcionar Muestras if (xOrdenMuestraRom.listaParaRecepcionarCrear.Any()) { totalMuestrasRecepcionadas = xOrdenMuestraRom.listaParaRecepcionarCrear.Count; ordenMuestraDal.RegistrarMuestrasConRecepcion(xOrdenMuestraRom.listaParaRecepcionarCrear, id, idusuario); } //Crear Muestras - NO RECEPCIONA if (!xOrdenMuestraRom.listaParaRecepcionarCrearSinRecepcion.Any()) { ordenMuestraDal.Rollback(); return(totalMuestrasInvalidasR + "_" + totalMuestrasRecepcionadas + "_" + totalMuestras + "_" + ExamenError + "_ "); } totalMuestrasRecepcionadas = xOrdenMuestraRom.listaParaRecepcionarCrearSinRecepcion.Count; ordenMuestraDal.RegistrarMuestrasSinRecepcion(xOrdenMuestraRom.listaParaRecepcionarCrearSinRecepcion, id, idusuario); } if (totalMuestrasInvalidasR == 0) { ordenMuestraDal.Commit(); } else { ordenMuestraDal.Rollback(); return(totalMuestrasInvalidasR + "_" + totalMuestrasRecepcionadas + "_" + totalMuestras + "_" + ExamenError); } } catch (Exception ex) { ordenMuestraDal.Rollback(); Respuesta = ex.Message; } } return(Respuesta); }