public object ObtnerEtiquetasMaterialPorODTS(string odtsm, Sam3_Usuario usuario) { try { int odtsID = string.IsNullOrEmpty(odtsm) ? 0 : Convert.ToInt32(odtsm); List <ListaCombos> listado = new List <ListaCombos>(); using (Sam2Context ctx2 = new Sam2Context()) { listado = (from ms in ctx2.MaterialSpool where ms.SpoolID == (from odts in ctx2.OrdenTrabajoSpool where odts.OrdenTrabajoSpoolID == odtsID select odts.SpoolID).FirstOrDefault() select new ListaCombos { id = ms.MaterialSpoolID.ToString(), value = ms.Etiqueta }).AsParallel().Distinct().OrderBy(x => x.value).ToList(); } return(listado); } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
public object ListadoCortadores(Sam3_Usuario usuario) { try { List <int> proyectos = new List <int>(); List <int> patios = new List <int>(); List <Operador> listado = new List <Operador>(); using (SamContext ctx = new SamContext()) { using (Sam2Context ctx2 = new Sam2Context()) { proyectos = (from p in ctx.Sam3_Rel_Usuario_Proyecto join eqp in ctx.Sam3_EquivalenciaProyecto on p.ProyectoID equals eqp.Sam3_ProyectoID where p.Activo && eqp.Activo && p.UsuarioID == usuario.UsuarioID select eqp.Sam2_ProyectoID).Distinct().AsParallel().ToList(); proyectos = proyectos.Where(x => x > 0).ToList(); patios = (from p in ctx.Sam3_Proyecto join pa in ctx.Sam3_Patio on p.PatioID equals pa.PatioID join eq in ctx.Sam3_EquivalenciaPatio on pa.PatioID equals eq.Sam3_PatioID join up in ctx.Sam3_Rel_Usuario_Proyecto on p.ProyectoID equals up.ProyectoID where p.Activo && pa.Activo && eq.Activo && up.UsuarioID == usuario.UsuarioID select eq.Sam2_PatioID).Distinct().AsParallel().ToList(); patios = patios.Where(x => x > 0).ToList(); listado = (from co in ctx2.Cortador where patios.Contains(co.PatioID) select new Operador { OperadorID = co.CortadorID.ToString(), Nombre = co.Nombre }).AsParallel().Distinct().ToList(); } } return(listado); } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
/// <summary> /// Genera un listado de clientes para mostrarse en un combo box /// </summary> /// <param name="usuario"></param> /// <returns></returns> public object ObtenerListadoClientes(Sam3_Usuario usuario) { try { using (Sam2Context ctx2 = new Sam2Context()) { using (SamContext ctx = new SamContext()) { List <int> patios = new List <int>(); List <int> proyectos = new List <int>(); UsuarioBd.Instance.ObtenerPatiosYProyectosDeUsuario(usuario.UsuarioID, out proyectos, out patios); List <int> clientesSam2 = (from p in ctx.Sam3_Proyecto join up in ctx.Sam3_Rel_Usuario_Proyecto on p.ProyectoID equals up.ProyectoID join pa in ctx.Sam3_Patio on p.PatioID equals pa.PatioID join cli in ctx.Sam3_Cliente on p.ClienteID equals cli.ClienteID where p.Activo && up.Activo && cli.Nombre != "Cliente Default" && up.UsuarioID == usuario.UsuarioID && proyectos.Contains(p.ProyectoID) && patios.Contains(pa.PatioID) select cli.Sam2ClienteID.Value).AsParallel().ToList(); List <Models.Cliente> cliente = new List <Models.Cliente>(); cliente = (from r in ctx2.Cliente where clientesSam2.Contains(r.ClienteID) select new Models.Cliente { Nombre = r.Nombre, ClienteID = r.ClienteID.ToString() }).AsParallel().Distinct().ToList(); cliente = cliente.GroupBy(x => x.ClienteID).Select(x => x.First()).ToList(); return(cliente); } } } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
public object ListadoFoliosParaCombo(int proyectoID, Sam3_Usuario usuario) { try { using (SamContext ctx = new SamContext()) { using (Sam2Context ctx2 = new Sam2Context()) { List <ListaCombos> listado = (from pk in ctx.Sam3_FolioPickingTicket join dpk in ctx.Sam3_DetalleFolioPickingTicket on pk.FolioPickingTicketID equals dpk.FolioPickingTicketID join d in ctx.Sam3_Despacho on dpk.DespachoID equals d.DespachoID where pk.Activo && dpk.Activo && d.Activo && d.ProyectoID == proyectoID select new ListaCombos { id = pk.FolioPickingTicketID.ToString(), value = pk.OrdenTrabajoSpoolID.ToString() }).AsParallel().Distinct().ToList(); listado = (from lst in listado where !(from odtm in ctx2.OrdenTrabajoMaterial where odtm.OrdenTrabajoSpoolID.ToString() == lst.value && (!odtm.TieneDespacho || odtm.TieneDespacho == null) select odtm).Any() select lst).ToList(); listado = listado.GroupBy(x => x.id).Select(x => x.First()).ToList(); foreach (ListaCombos item in listado) { string valor = item.value; item.value = ctx2.OrdenTrabajoSpool.Where(x => x.OrdenTrabajoSpoolID.ToString() == valor).Select(x => x.NumeroControl).AsParallel().SingleOrDefault(); } return(listado.OrderBy(x => x.value).ToList()); } } } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
public object ListadoNumeroControlConvertirAGranel(Sam3_Usuario usuario) { try { using (SamContext ctx = new SamContext()) { using (Sam2Context ctx2 = new Sam2Context()) { List <int> proyectos = new List <int>(); List <int> patios = new List <int>(); UsuarioBd.Instance.ObtenerPatiosYProyectosDeUsuario(usuario.UsuarioID, out proyectos, out patios); List <int> proyectos_sam2 = (from eqp in ctx.Sam3_EquivalenciaProyecto where eqp.Activo && proyectos.Contains(eqp.Sam3_ProyectoID) select eqp.Sam2_ProyectoID).AsParallel().ToList(); List <int> patios_sam2 = (from eqp in ctx.Sam3_EquivalenciaPatio where eqp.Activo && patios.Contains(eqp.Sam3_PatioID) select eqp.Sam2_PatioID).AsParallel().ToList(); List <ListaCombos> listado = (from odts in ctx2.OrdenTrabajoSpool join odt in ctx2.OrdenTrabajo on odts.OrdenTrabajoID equals odt.OrdenTrabajoID where proyectos_sam2.Contains(odt.ProyectoID) select new ListaCombos { id = odts.OrdenTrabajoSpoolID.ToString(), value = odts.NumeroControl }).AsParallel().Distinct().ToList(); listado = listado.GroupBy(x => x.id).Select(x => x.First()).OrderBy(x => x.value).ToList(); return(listado); } } } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
public object ObtenerODTSporODT(int odtID, string busqueda, Sam3_Usuario usuario) { try { List <ListaCombos> listado = new List <ListaCombos>(); using (Sam2Context ctx2 = new Sam2Context()) { List <string> elementos = new List <string>(); if (busqueda != "" && busqueda != null) { char[] lstElementoNumeroControl = busqueda.ToCharArray(); foreach (char i in lstElementoNumeroControl) { elementos.Add(i.ToString()); } } listado = (from odts in ctx2.OrdenTrabajoSpool where odts.OrdenTrabajoID == odtID && elementos.Any(x => odts.NumeroControl.Contains(x)) select new ListaCombos { id = odts.OrdenTrabajoSpoolID.ToString(), value = odts.NumeroControl }).AsParallel().Distinct().OrderBy(x => x.value).ToList(); } return(listado); } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
public object EtiquetasDisponibles(string numeroControl, Sam3_Usuario usuario) { try { List <ListaCombos> resultado = new List <ListaCombos>(); using (SamContext ctx = new SamContext()) { using (Sam2Context ctx2 = new Sam2Context()) { resultado = (from odtm in ctx2.OrdenTrabajoMaterial join odts in ctx2.OrdenTrabajoSpool on odtm.OrdenTrabajoSpoolID equals odts.OrdenTrabajoSpoolID join ms in ctx2.MaterialSpool on odtm.MaterialSpoolID equals ms.MaterialSpoolID join it in ctx2.ItemCode on ms.ItemCodeID equals it.ItemCodeID where odts.NumeroControl == numeroControl && !odtm.TieneDespacho && it.TipoMaterialID == 1 select new ListaCombos { id = ms.MaterialSpoolID.ToString(), value = ms.Etiqueta }).AsParallel().Distinct().ToList(); } } return(resultado); } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
public object ObtenerJuntasPorODTS(int odtsID, Sam3_Usuario usuario) { try { ItemsSpoolAGranel lista = new ItemsSpoolAGranel(); using (Sam2Context ctx2 = new Sam2Context()) { lista.Items.AddRange((from js in ctx2.JuntaSpool join odts in ctx2.OrdenTrabajoSpool on js.SpoolID equals odts.SpoolID join tj in ctx2.TipoJunta on js.TipoJuntaID equals tj.TipoJuntaID where odts.OrdenTrabajoSpoolID == odtsID select new ListadoConvertirSpoolAGranel { Spool = odts.NumeroControl, Junta = js.Etiqueta, Status = (from jwks in ctx2.JuntaWorkstatus join up in ctx2.UltimoProceso on jwks.UltimoProcesoID equals up.UltimoProcesoID where jwks.JuntaSpoolID == js.JuntaSpoolID select up.Nombre).FirstOrDefault(), TipoJunta = tj.Nombre }).AsParallel().Distinct().ToList()); } return(lista); } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
public object ObtenerMermaTeorica(int maquinaID, Sam3_Usuario usuario) { try { using (Sam2Context ctx2 = new Sam2Context()) { return(ctx2.Maquina.Where(x => x.MaquinaID == maquinaID).Select(x => x.MermaTeorica).AsParallel().SingleOrDefault()); } } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
/// <summary> /// Obtiene un solo elemento de cliente, por id. /// </summary> /// <param name="clienteID"></param> /// <returns></returns> public object ObtnerElementoClientePorID(int clienteID) { try { using (Sam2Context ctx = new Sam2Context()) { Models.Cliente clienteBd = (from r in ctx.Cliente where r.ClienteID == clienteID select new Models.Cliente { Nombre = r.Nombre, ClienteID = r.ClienteID.ToString() }).AsParallel().SingleOrDefault(); return(clienteBd); } } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- return(ex.Message); } }
/// <summary> /// Funcion para obtener los datos del grid de pre despacho /// </summary> /// <param name="spoolID"></param> /// <param name="usuario"></param> /// <returns></returns> public object ObtenerGridPreDespacho(int odtID, Sam3_Usuario usuario) { try { List <int> proyectos = new List <int>(); List <int> patios = new List <int>(); UsuarioBd.Instance.ObtenerPatiosYProyectosDeUsuario(usuario.UsuarioID, out proyectos, out patios); using (SamContext ctx = new SamContext()) { proyectos = (from eqp in ctx.Sam3_EquivalenciaProyecto where eqp.Activo && proyectos.Contains(eqp.Sam3_ProyectoID) select eqp.Sam2_ProyectoID).Distinct().AsParallel().ToList(); proyectos = proyectos.Where(x => x > 0).ToList(); patios = (from p in ctx.Sam3_Proyecto join pa in ctx.Sam3_Patio on p.PatioID equals pa.PatioID join eq in ctx.Sam3_EquivalenciaPatio on pa.PatioID equals eq.Sam2_PatioID where p.Activo && pa.Activo && eq.Activo && proyectos.Contains(p.ProyectoID) select eq.Sam2_PatioID).Distinct().AsParallel().ToList(); patios = patios.Where(x => x > 0).ToList(); List <int> numerosUnicosAprobadosSam3 = (from nu in ctx.Sam3_NumeroUnico where nu.Activo && nu.EstatusDocumental == "Aprobado" && nu.EstatusFisico == "Aprobado" select nu.NumeroUnicoID).AsParallel().ToList(); List <int> numerosUnicosAprobadosSam2 = (from eq in ctx.Sam3_EquivalenciaNumeroUnico where eq.Activo && numerosUnicosAprobadosSam3.Contains(eq.Sam3_NumeroUnicoID) select eq.Sam2_NumeroUnicoID).AsParallel().ToList(); using (Sam2Context ctx2 = new Sam2Context()) { List <PreDespacho> listado = (from ots in ctx2.OrdenTrabajoSpool join ot in ctx2.OrdenTrabajo on ots.OrdenTrabajoID equals ot.OrdenTrabajoID join otm in ctx2.OrdenTrabajoMaterial on ots.OrdenTrabajoSpoolID equals otm.OrdenTrabajoSpoolID join ms in ctx2.MaterialSpool on otm.MaterialSpoolID equals ms.MaterialSpoolID join nu in ctx2.NumeroUnico on otm.NumeroUnicoCongeladoID equals nu.NumeroUnicoID join ic in ctx2.ItemCode on ms.ItemCodeID equals ic.ItemCodeID where ot.OrdenTrabajoID == odtID && proyectos.Contains(ot.ProyectoID) && ic.TipoMaterialID == 2 //&& !otm.TieneDespacho && numerosUnicosAprobadosSam2.Contains(nu.NumeroUnicoID) select new PreDespacho { ItemCodeID = ic.ItemCodeID.ToString(), ItemCode = ic.Codigo, NumeroControlID = ots.OrdenTrabajoSpoolID.ToString(), NumeroControl = ots.NumeroControl, //NumeroUnico = nu.Codigo, Descripcion = ic.DescripcionEspanol, Etiqueta = ms.Etiqueta, MaterialSpoolID = otm.MaterialSpoolID }).AsParallel().ToList(); foreach (PreDespacho item in listado) { int sam3_ItemCodeID = (from eqn in ctx.Sam3_EquivalenciaItemCode where eqn.Activo && eqn.Sam2_ItemCodeID.ToString() == item.ItemCodeID select eqn.Sam3_ItemCodeID).AsParallel().SingleOrDefault(); if (ctx.Sam3_PreDespacho .Where(x => x.OrdenTrabajoSpoolID.ToString() == item.NumeroControlID && x.ItemCodeID == sam3_ItemCodeID && x.MaterialSpoolID == item.MaterialSpoolID).Any()) { Sam3_PreDespacho preDespacho = ctx.Sam3_PreDespacho .Where(x => x.OrdenTrabajoSpoolID.ToString() == item.NumeroControlID && x.ItemCodeID == sam3_ItemCodeID && x.MaterialSpoolID == item.MaterialSpoolID && x.Activo).AsParallel().SingleOrDefault(); if (preDespacho != null) { item.PreDespachoID = preDespacho.PreDespachoID.ToString(); int sam3_NumeroUnicoID = preDespacho.NumeroUnicoID; //(from pre in ctx.Sam3_PreDespacho // where pre.Activo // && pre.OrdenTrabajoSpoolID.ToString() == item.NumeroControlID // && pre.ItemCodeID == sam3_ItemCodeID // && pre.MaterialSpoolID == item.MaterialSpoolID // select pre.NumeroUnicoID).AsParallel().SingleOrDefault(); int sam2_numeroUnicoID = (from eqn in ctx.Sam3_EquivalenciaNumeroUnico where eqn.Activo && eqn.Sam3_NumeroUnicoID == sam3_NumeroUnicoID select eqn.Sam2_NumeroUnicoID).AsParallel().SingleOrDefault(); NumeroUnico SAM2NumUnico = ctx2.NumeroUnico.Where(x => x.NumeroUnicoID == sam2_numeroUnicoID).AsParallel().SingleOrDefault(); item.NumeroUnico = SAM2NumUnico.Codigo; item.NumeroUnicoID = SAM2NumUnico.NumeroUnicoID.ToString(); } } } return(listado.OrderBy(x => x.NumeroControlID).ToList()); } } } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
public object ListadoNumerosUnicos(string numeroControl, string itemcode, string etiqueta, Sam3_Usuario usuario) { try { List <ListaCombosICC> listado = new List <ListaCombosICC>(); using (SamContext ctx = new SamContext()) { using (Sam2Context ctx2 = new Sam2Context()) { int proyectoID = (from odts in ctx2.OrdenTrabajoSpool join s in ctx2.Spool on odts.SpoolID equals s.SpoolID where odts.NumeroControl == numeroControl select s.ProyectoID).AsParallel().Distinct().FirstOrDefault(); int digitos = (from p in ctx2.ProyectoConfiguracion where p.ProyectoID == proyectoID select p.DigitosNumeroUnico).AsParallel().SingleOrDefault(); // numero unico congelado List <int> sam2_NumerosUnicosIDs = (from odts in ctx2.OrdenTrabajoSpool join odtm in ctx2.OrdenTrabajoMaterial on odts.OrdenTrabajoSpoolID equals odtm.OrdenTrabajoSpoolID join ms in ctx2.MaterialSpool on odtm.MaterialSpoolID equals ms.MaterialSpoolID join it in ctx2.ItemCode on ms.ItemCodeID equals it.ItemCodeID join nu in ctx2.NumeroUnico on odtm.NumeroUnicoCongeladoID equals nu.NumeroUnicoID join nui in ctx2.NumeroUnicoInventario on nu.NumeroUnicoID equals nui.NumeroUnicoID join p in ctx2.Proyecto on nu.ProyectoID equals p.ProyectoID join pa in ctx2.Patio on p.PatioID equals pa.PatioID where odts.NumeroControl == numeroControl && it.TipoMaterialID == 2 && it.Codigo == itemcode && ms.Diametro1 == nu.Diametro1 && ms.Diametro2 == nu.Diametro2 && ms.Etiqueta == etiqueta select nu.NumeroUnicoID).Distinct().AsParallel().ToList(); //numeros unicos del mismo itemode y con material suficiente para el despacho sam2_NumerosUnicosIDs.AddRange((from it in ctx2.ItemCode join nu in ctx2.NumeroUnico on it.ItemCodeID equals nu.ItemCodeID join nui in ctx2.NumeroUnicoInventario on nu.NumeroUnicoID equals nui.NumeroUnicoID join ms in ctx2.MaterialSpool on it.ItemCodeID equals ms.ItemCodeID where it.Codigo == itemcode && it.TipoMaterialID == 2 && ms.Diametro1 == nu.Diametro1 && ms.Diametro2 == nu.Diametro2 && (nui.InventarioDisponibleCruce >= ms.Cantidad || nui.InventarioCongelado >= ms.Cantidad) select nu.NumeroUnicoID).Distinct().AsParallel().ToList()); listado = (from nu in ctx.Sam3_NumeroUnico join nueq in ctx.Sam3_EquivalenciaNumeroUnico on nu.NumeroUnicoID equals nueq.Sam3_NumeroUnicoID join it in ctx.Sam3_ItemCode on nu.ItemCodeID equals it.ItemCodeID where nu.Activo && nueq.Activo && sam2_NumerosUnicosIDs.Contains(nueq.Sam2_NumeroUnicoID) && nu.EstatusFisico == "Aprobado" //&& nu.EstatusDocumental == "Aprobado" select new ListaCombosICC { id = nu.NumeroUnicoID.ToString(), value = nu.Prefijo + "-" + nu.Consecutivo, tipoGrupo = it.TipoMaterialID }).Distinct().AsParallel().ToList(); foreach (ListaCombosICC lst in listado) { string[] elementos = lst.value.Split('-'); int temp = Convert.ToInt32(lst.id); string formato = "D" + digitos.ToString(); int consecutivo = Convert.ToInt32(elementos[1]); lst.value = elementos[0] + "-" + consecutivo.ToString(formato); } } } return(listado); } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
/// <summary> /// Funcion para el boton Predespachar /// Pantalla pre despacho /// </summary> /// <param name="lista"></param> /// <param name="usuario"></param> /// <returns></returns> public object Predespachar(List <PreDespachoItems> lista, Sam3_Usuario usuario) { try { int preDespachoID = 0; using (SamContext ctx = new SamContext()) { using (var ctx_tran = ctx.Database.BeginTransaction()) { using (Sam2Context ctx2 = new Sam2Context()) { foreach (PreDespachoItems item in lista) { preDespachoID = item.PreDespachoID != "" ? Convert.ToInt32(item.PreDespachoID) : 0; bool tieneHold = (from sh in ctx2.SpoolHold where sh.SpoolID == (from odts in ctx2.OrdenTrabajoSpool where odts.OrdenTrabajoSpoolID.ToString() == item.NumeroControl select odts.SpoolID).FirstOrDefault() && (sh.TieneHoldCalidad || sh.TieneHoldIngenieria || sh.Confinado) select sh).AsParallel().Any(); if (!tieneHold) { DatabaseManager.Sam2.ItemCode itemCode = (from it in ctx2.ItemCode where it.ItemCodeID.ToString() == item.ItemCode select it).AsParallel().SingleOrDefault(); int proyectoID = itemCode.ProyectoID; int sam3_ProyectoID = (from eqp in ctx.Sam3_EquivalenciaProyecto where eqp.Activo && eqp.Sam2_ProyectoID == proyectoID select eqp.Sam3_ProyectoID).AsParallel().SingleOrDefault(); int sam3_ItemCodeID = (from eqi in ctx.Sam3_EquivalenciaItemCode where eqi.Activo && eqi.Sam2_ItemCodeID == itemCode.ItemCodeID select eqi.Sam3_ItemCodeID).AsParallel().SingleOrDefault(); //Dividimos el codigo del numero para buscarlo en sam3 string[] elementosCodigo = item.NumeroUnico.Split('-').ToArray(); int consecutivoNumeroUnico = Convert.ToInt32(elementosCodigo[1]); string prefijoNumeroUnico = elementosCodigo[0]; //int sam3_ProyectoID = (from nueq in ctx.Sam3_EquivalenciaProyecto // where nueq.Activo && nueq.Sam2_ProyectoID == proyectoID // select nueq.Sam3_ProyectoID).AsParallel().SingleOrDefault(); //traemos los datos de la orden de trabajo spool de Sam2 OrdenTrabajoSpool odtSpool = (from odts in ctx2.OrdenTrabajoSpool join odt in ctx2.OrdenTrabajo on odts.OrdenTrabajoID equals odt.OrdenTrabajoID where odts.OrdenTrabajoSpoolID.ToString() == item.NumeroControl && odt.ProyectoID == proyectoID select odts).AsParallel().SingleOrDefault(); //traemos los datos del material de Sam 2 MaterialSpool materialSpool = (from ms in ctx2.MaterialSpool join odts in ctx2.OrdenTrabajoSpool on ms.SpoolID equals odts.SpoolID where odts.OrdenTrabajoSpoolID == odtSpool.OrdenTrabajoSpoolID && ms.Etiqueta == item.Etiqueta select ms).AsParallel().SingleOrDefault(); //traemos los datos de la orden de trabajo material de Sam 2 OrdenTrabajoMaterial odtMaterial = (from odtm in ctx2.OrdenTrabajoMaterial where odtm.OrdenTrabajoSpoolID == odtSpool.OrdenTrabajoSpoolID && odtm.MaterialSpoolID == materialSpool.MaterialSpoolID select odtm).AsParallel().SingleOrDefault(); //buscamos el numero unico en SAM 3 if (ctx.Sam3_NumeroUnico.Where(x => x.Prefijo == prefijoNumeroUnico && x.Consecutivo == consecutivoNumeroUnico && x.ProyectoID == sam3_ProyectoID).AsParallel().Any()) { //int sam2_numeroUnicoID = 0; // numero unico seleccionado en el grid Sam3_NumeroUnico numeroUnico = ctx.Sam3_NumeroUnico.Where(x => x.Prefijo == prefijoNumeroUnico && x.Consecutivo == consecutivoNumeroUnico && x.ProyectoID == sam3_ProyectoID).AsParallel().SingleOrDefault(); if (preDespachoID > 0) // existe el predespacho { Sam3_PreDespacho preDespacho = (from pre in ctx.Sam3_PreDespacho where pre.Activo && pre.PreDespachoID == preDespachoID select pre).AsParallel().SingleOrDefault(); // si el numero Unico seleccionado es diferente del numero unico que se encuentra registrado en el predespacho if (preDespachoID > 0 && preDespacho.NumeroUnicoID != numeroUnico.NumeroUnicoID) { preDespacho.Activo = true; preDespacho.FechaModificacion = DateTime.Now; preDespacho.FechaPreDespacho = DateTime.Now; preDespacho.UsuarioModificacion = usuario.UsuarioID; preDespacho.ProyectoID = sam3_ProyectoID; preDespacho.NumeroUnicoID = numeroUnico.NumeroUnicoID; preDespacho.Cantidad = (int)odtMaterial.CantidadCongelada; ctx.SaveChanges(); } } else { Sam3_PreDespacho preDespacho = new Sam3_PreDespacho(); preDespacho.Activo = true; preDespacho.FechaModificacion = DateTime.Now; preDespacho.FechaPreDespacho = DateTime.Now; preDespacho.UsuarioModificacion = usuario.UsuarioID; preDespacho.ProyectoID = sam3_ProyectoID; preDespacho.OrdenTrabajoSpoolID = Convert.ToInt32(item.NumeroControl); preDespacho.NumeroUnicoID = numeroUnico.NumeroUnicoID; preDespacho.MaterialSpoolID = odtMaterial.MaterialSpoolID; preDespacho.ItemCodeID = sam3_ItemCodeID; preDespacho.Cantidad = (int)odtMaterial.CantidadCongelada; ctx.Sam3_PreDespacho.Add(preDespacho); ctx.SaveChanges(); } } } else { throw new Exception("El Spool cuenta con Hold, no se puede Pre-Despachar"); } } ctx_tran.Commit(); TransactionalInformation result = new TransactionalInformation(); //result.ReturnMessage.Add(preDespacho.PreDespachoID.ToString()); result.ReturnCode = 200; result.ReturnStatus = true; result.IsAuthenicated = true; return(result); } } } } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
public TransactionalInformation Login(string usuario, string password) { Sam3_Usuario usr = new Sam3_Usuario(); try { TransactionalInformation transaction = new TransactionalInformation(); Sam3_Usuario usuarioSam3; using (SamContext ctx = new SamContext()) { MembershipProvider proveedor = Membership.Provider; MembershipUser usuarioRegistrado; if (usuario != "samAdmin" && usuario != "samListados" && usuario != "samCreacion") { if (proveedor.ValidateUser(usuario, password)) { usuarioRegistrado = proveedor.GetUser(usuario, false); Guid id = (Guid)usuarioRegistrado.ProviderUserKey; if (ctx.Sam3_Usuario.Where(x => x.Sam2UserID == id).Any()) { usuarioSam3 = ctx.Sam3_Usuario.Where(x => x.Sam2UserID == id).AsParallel().SingleOrDefault(); } else { using (Sam2Context ctx2 = new Sam2Context()) { Usuario usrSam2 = ctx2.Usuario.Where(x => x.UserId == id).SingleOrDefault(); usuarioSam3 = new Sam3_Usuario { Activo = true, ApellidoMaterno = usrSam2.ApMaterno, ApellidoPaterno = usrSam2.ApPaterno, BloqueadoPorAdministracion = usr.BloqueadoPorAdministracion, ContrasenaHash = ctx2.aspnet_Membership.Where(x => x.UserId == id).Select(x => x.Password).SingleOrDefault(), FechaModificacion = DateTime.Now, Nombre = usr.Nombre, NombreUsuario = ctx2.aspnet_Users.Where(x => x.UserId == id).Select(x => x.UserName).SingleOrDefault(), PerfilID = ctx.Sam3_Perfil.Where(x => x.Nombre == "Sin Permisos").Select(x => x.PerfilID).SingleOrDefault(), Sam2UserID = id, UsuarioModificacion = 1 }; ctx.Sam3_Usuario.Add(usuarioSam3); ctx.SaveChanges(); } } string token = ManageTokens.Instance.CreateJwtToken(usuarioSam3); transaction.IsAuthenicated = true; transaction.ReturnMessage.Add(usuarioSam3.Nombre + " " + usuarioSam3.ApellidoPaterno); transaction.ReturnMessage.Add(token); transaction.ReturnCode = 200; transaction.ReturnStatus = true; #region registro usr = new Sam3_Usuario { UsuarioID = usuarioSam3.UsuarioID, NombreUsuario = usuarioSam3.NombreUsuario, ContrasenaHash = usuarioSam3.ContrasenaHash, PerfilID = usuarioSam3.PerfilID, BloqueadoPorAdministracion = usuarioSam3.BloqueadoPorAdministracion, Activo = usuarioSam3.Activo, Sam2UserID = id }; #endregion } else { string message = "Datos de usuario no valido"; transaction.ReturnCode = 400; transaction.ReturnMessage.Add(message); transaction.IsAuthenicated = false; transaction.ReturnStatus = false; } } else { usuarioSam3 = (from us in ctx.Sam3_Usuario where us.NombreUsuario == usuario && us.ContrasenaHash == password select us).AsParallel().SingleOrDefault(); if (usuarioSam3 != null) { int user = string.Compare(usuarioSam3.NombreUsuario, usuario, false); int pass = string.Compare(usuarioSam3.ContrasenaHash, password, false); } if (usuarioSam3 != null && string.Compare(usuarioSam3.ContrasenaHash, password, false) == 0 && string.Compare(usuarioSam3.NombreUsuario, usuario, false) == 0) { string token = ManageTokens.Instance.CreateJwtToken(usuarioSam3); token = token; transaction.IsAuthenicated = true; transaction.ReturnMessage.Add(usuarioSam3.Nombre + " " + usuarioSam3.ApellidoPaterno); transaction.ReturnMessage.Add(token); transaction.ReturnCode = 200; transaction.ReturnStatus = true; } else { string message = "Datos de usuario no valido"; transaction.ReturnCode = 400; transaction.ReturnMessage.Add(message); transaction.IsAuthenicated = false; transaction.ReturnStatus = false; } } } return(transaction); } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- Logger.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message + "Stack: " + ex.StackTrace + "----" + ex.InnerException); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } finally { string json = ""; JavaScriptSerializer serializer = new JavaScriptSerializer(); json = serializer.Serialize(usr); Logger.Instance.EscribirLog("Usuario:" + usuario + ", pass: "******"GUID devuelto: " + usr.Sam2UserID.ToString()); Logger.Instance.EscribirLog(json); } }
public object ListadoNumerosUnicosCorte(int proyectoID, string busqueda, Sam3_Usuario usuario) { try { List <ListaComboNumeroUnicoCOrte> listado = new List <ListaComboNumeroUnicoCOrte>(); using (SamContext ctx = new SamContext()) { using (Sam2Context ctx2 = new Sam2Context()) { int sam2_proyectoID = ctx.Sam3_EquivalenciaProyecto.Where(x => x.Sam3_ProyectoID == proyectoID) .Select(x => x.Sam2_ProyectoID).AsParallel().SingleOrDefault(); //Busco los numeros unicos con despachos pendientes en sam 2 List <int> sam2_NumerosUnicos = (from nu in ctx2.NumeroUnico join it in ctx2.ItemCode on nu.ItemCodeID equals it.ItemCodeID join odtm in ctx2.OrdenTrabajoMaterial on nu.NumeroUnicoID equals odtm.NumeroUnicoDespachadoID join odts in ctx2.OrdenTrabajoSpool on odtm.OrdenTrabajoSpoolID equals odts.OrdenTrabajoSpoolID where nu.ProyectoID == sam2_proyectoID && !(from shDespachado in ctx2.SpoolHold where shDespachado.SpoolID == odts.SpoolID && (shDespachado.Confinado || shDespachado.TieneHoldCalidad || shDespachado.TieneHoldIngenieria) select shDespachado).Any() && it.TipoMaterialID == 1 && nu.Codigo.Contains(busqueda) && nu.Estatus == "A" select nu.NumeroUnicoID).Distinct().AsParallel().ToList(); sam2_NumerosUnicos.AddRange((from nu in ctx2.NumeroUnico join it in ctx2.ItemCode on nu.ItemCodeID equals it.ItemCodeID join odtm in ctx2.OrdenTrabajoMaterial on nu.NumeroUnicoID equals odtm.NumeroUnicoCongeladoID join odts in ctx2.OrdenTrabajoSpool on odtm.OrdenTrabajoSpoolID equals odts.OrdenTrabajoSpoolID where nu.ProyectoID == sam2_proyectoID && !(from shCongelado in ctx2.SpoolHold where shCongelado.SpoolID == odts.SpoolID && (shCongelado.Confinado || shCongelado.TieneHoldCalidad || shCongelado.TieneHoldIngenieria) select shCongelado).Any() && it.TipoMaterialID == 1 && nu.Codigo.Contains(busqueda) && nu.Estatus == "A" select nu.NumeroUnicoID).Distinct().AsParallel().ToList()); //ahora buscamos las equivalencias de esos numeros unicos en sam 3 List <int> sam3_NumerosUnicos = (from nueq in ctx.Sam3_EquivalenciaNumeroUnico where nueq.Activo && sam2_NumerosUnicos.Contains(nueq.Sam2_NumeroUnicoID) select nueq.Sam3_NumeroUnicoID).Distinct().AsParallel().ToList(); listado = (from nu in ctx.Sam3_NumeroUnico join nus in ctx.Sam3_NumeroUnicoSegmento on nu.NumeroUnicoID equals nus.NumeroUnicoID where nu.Activo && nus.Activo && nu.Estatus == "A" && sam3_NumerosUnicos.Contains(nu.NumeroUnicoID) select new ListaComboNumeroUnicoCOrte { NumeroControlID = nu.NumeroUnicoID.ToString(), NumeroControl = nu.Prefijo + "-" + nu.Consecutivo + "-" + nus.Segmento }).Distinct().AsParallel().ToList(); Sam3_ProyectoConfiguracion configuracion = ctx.Sam3_ProyectoConfiguracion.Where(x => x.ProyectoID == proyectoID).AsParallel().SingleOrDefault(); foreach (ListaComboNumeroUnicoCOrte lst in listado) { string formato = "D" + configuracion.DigitosNumeroUnico.ToString(); string[] elementos = lst.NumeroControl.Split('-').ToArray(); int consecutivo = Convert.ToInt32(elementos[1]); string codigo = elementos[0] + "-" + consecutivo.ToString(formato) + "-" + elementos[2]; lst.NumeroControl = codigo; } } } return(listado); } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
public object EliminarNumeroUnico(int numeroUnicoID, Sam3_Usuario usuario) { try { using (SamContext ctx = new SamContext()) { using (var ctx_tran = ctx.Database.BeginTransaction()) { using (Sam2Context ctx2 = new Sam2Context()) { using (var ctx2_tran = ctx2.Database.BeginTransaction()) { int sam2_NumeroUnicoID = (from eq in ctx.Sam3_EquivalenciaNumeroUnico where eq.Activo && eq.Sam3_NumeroUnicoID == numeroUnicoID select eq.Sam2_NumeroUnicoID).AsParallel().SingleOrDefault(); NumeroUnico NumeroUnicoSam2 = ctx2.NumeroUnico.Where(x => x.NumeroUnicoID == sam2_NumeroUnicoID).AsParallel().SingleOrDefault(); //buscamos si tiene procesos en ODTM bool tieneProcesos = (from odtm in ctx2.OrdenTrabajoMaterial where odtm.NumeroUnicoCongeladoID == NumeroUnicoSam2.NumeroUnicoID || odtm.NumeroUnicoDespachadoID == NumeroUnicoSam2.NumeroUnicoID || odtm.NumeroUnicoSugeridoID == NumeroUnicoSam2.NumeroUnicoID select odtm).Any(); bool tieneInventarioCongelado = (from nui in ctx.Sam3_NumeroUnicoInventario where nui.NumeroUnicoID == NumeroUnicoSam2.NumeroUnicoID select nui.InventarioCongelado).AsParallel().SingleOrDefault() > 0 ? true : false; bool tieneInventarioTransferenciaCorte = (from nui in ctx.Sam3_NumeroUnicoInventario where nui.NumeroUnicoID == NumeroUnicoSam2.NumeroUnicoID select nui.InventarioTransferenciaCorte).AsParallel().SingleOrDefault() > 0 ? true : false; if (!tieneProcesos && !tieneInventarioCongelado && !tieneInventarioTransferenciaCorte) { //Para eliminar el numero unico de sam 2 solo hay que ponerlo en estatus C NumeroUnicoSam2.Estatus = "C"; NumeroUnicoSam2.FechaModificacion = DateTime.Now; ctx2.SaveChanges(); Sam3_NumeroUnico numUnicoS3 = ctx.Sam3_NumeroUnico.Where(x => x.NumeroUnicoID == numeroUnicoID).AsParallel().SingleOrDefault(); numUnicoS3.Activo = false; numUnicoS3.FechaModificacion = DateTime.Now; numUnicoS3.UsuarioModificacion = usuario.UsuarioID; numUnicoS3.Sam3_NumeroUnicoInventario.Activo = false; numUnicoS3.Sam3_NumeroUnicoInventario.FechaModificacion = DateTime.Now; numUnicoS3.Sam3_NumeroUnicoInventario.UsuarioModificacion = usuario.UsuarioID; foreach (Sam3_NumeroUnicoSegmento segmento in numUnicoS3.Sam3_NumeroUnicoSegmento) { segmento.Activo = false; segmento.FechaModificacion = DateTime.Now; segmento.UsuarioModificacion = usuario.UsuarioID; } Sam3_Rel_NumeroUnico_RelFC_RelB relnu = ctx.Sam3_Rel_NumeroUnico_RelFC_RelB.Where(x => x.NumeroUnicoID == numeroUnicoID).AsParallel().SingleOrDefault(); relnu.Activo = false; relnu.FechaModificacion = DateTime.Now; relnu.UsuarioModificacion = usuario.UsuarioID; ctx.SaveChanges(); if (relnu.Rel_FolioCuantificacion_ItemCode_ID != null) { Sam3_Rel_FolioCuantificacion_ItemCode relfc = ctx.Sam3_Rel_FolioCuantificacion_ItemCode .Where(x => x.Rel_FolioCuantificacion_ItemCode_ID == relnu.Rel_FolioCuantificacion_ItemCode_ID).AsParallel().SingleOrDefault(); //if (ctx.Sam3_Rel_NumeroUnico_RelFC_RelB.Where(x => x.Rel_FolioCuantificacion_ItemCode_ID == relfc.Rel_FolioCuantificacion_ItemCode_ID // && x.Activo).Distinct().Count() <= 0) //{ relfc.TieneNumerosUnicos = false; //} ctx.SaveChanges(); } if (relnu.Rel_Bulto_ItemCode_ID != null) { Sam3_Rel_Bulto_ItemCode relbu = ctx.Sam3_Rel_Bulto_ItemCode.Where(x => x.Rel_Bulto_ItemCode_ID == relnu.Rel_Bulto_ItemCode_ID).AsParallel().SingleOrDefault(); //if (ctx.Sam3_Rel_NumeroUnico_RelFC_RelB.Where(x => x.Rel_Bulto_ItemCode_ID == relbu.Rel_Bulto_ItemCode_ID // && x.Activo).Distinct().Count() <= 0) //{ relbu.TieneNumerosUnicos = false; //} ctx.SaveChanges(); } ctx.SaveChanges(); } else { throw new Exception("No se puede Eliminar el Número Único pues tiene algun proceso capturado"); } ctx_tran.Commit(); ctx2_tran.Commit(); } } } } TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add("OK"); result.ReturnCode = 200; result.ReturnStatus = true; result.IsAuthenicated = true; return(result); } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
/// <summary> /// Se obtienen los datos del ICS para el Grid /// Pantalla Catalogo ICS /// </summary> /// <returns></returns> public object obtenerDatosCatalogoICS() { try { List <ICSDatosAsociacion> lista = new List <ICSDatosAsociacion>(); using (SamContext ctx = new SamContext()) { using (Sam2Context ctx2 = new Sam2Context()) { lista = (from ics in ctx.Sam3_ItemCodeSteelgo join g in ctx.Sam3_Grupo on ics.GrupoID equals g.GrupoID join cat in ctx.Sam3_CatalogoCedulas on ics.CedulaID equals cat.CatalogoCedulasID //join c in ctx.Sam3_Cedula on ics.CedulaID equals c.CedulaID join diam in ctx.Sam3_Rel_ItemCodeSteelgo_Diametro on ics.ItemCodeSteelgoID equals diam.ItemCodeSteelgoID where ics.Activo && g.Activo && cat.Activo && diam.Activo select new ICSDatosAsociacion { ItemCodeSteelgoID = ics.ItemCodeSteelgoID.ToString(), Codigo = ics.Codigo, Descripcion = ics.DescripcionEspanol, DescripcionIngles = ics.DescripcionIngles, DescripcionLarga = ics.DescripcionLargaEspanol, DescripcionLargaIngles = ics.DescripcionLargaIngles, Rel_ICS_DiametroID = diam.Rel_ItemCodeSteelgo_Diametro_ID.ToString(), Diametro1ID = diam.Diametro1ID.ToString(), Diametro1 = (from d in ctx.Sam3_Diametro where d.Activo && d.DiametroID == diam.Diametro1ID select d.Valor.ToString()).FirstOrDefault(), Diametro2ID = diam.Diametro2ID.ToString(), Diametro2 = (from d in ctx.Sam3_Diametro where d.Activo && d.DiametroID == diam.Diametro2ID select d.Valor.ToString()).FirstOrDefault(), Grupo = g.Nombre, GrupoID = ics.GrupoID.ToString(), AceroID = ics.FamiliaAceroID.ToString(), CedulaID = ics.CedulaID.ToString(), CedulaA = (from ced in ctx.Sam3_Cedula where ced.CedulaID == cat.CedulaA && ced.Activo select ced.Codigo ).FirstOrDefault(), CedulaB = (from ced in ctx.Sam3_Cedula where ced.CedulaID == cat.CedulaB && ced.Activo select ced.Codigo ).FirstOrDefault(), Libra = (from ced in ctx.Sam3_Cedula where ced.CedulaID == cat.CedulaC && ced.Activo select ced.Codigo ).FirstOrDefault(), Inch = cat.EspesorIn.ToString(), MM = cat.EspesorMM.ToString(), Peso = ics.Peso.ToString(), Area = ics.Area.ToString(), TipoMaterial = g.TipoMaterialID.ToString() }).AsParallel().ToList(); lista.ForEach(x => { int equiv = (from eq in ctx.Sam3_EquivalenciaFamiliaAcero where eq.Activo && eq.Sam3_FamiliaAceroID.ToString() == x.AceroID select eq.Sam2_FamiliaAceroID).AsParallel().SingleOrDefault(); x.Acero = (from fa in ctx2.FamiliaAcero where fa.FamiliaAceroID == equiv select fa.Nombre).AsParallel().SingleOrDefault(); }); } } return(lista); } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
public object ObtenerOrdenTrabajoPorProyecto(string proyecto, string busqueda, Sam3_Usuario usuario) { try { List <ListaCombos> listado = new List <ListaCombos>(); int sam2_proyectoID = 0; List <int> proyectos = new List <int>(); List <int> patios = new List <int>(); int proyectoID = string.IsNullOrEmpty(proyecto) ? 0 : Convert.ToInt32(proyecto); using (Sam2Context ctx2 = new Sam2Context()) { using (SamContext ctx = new SamContext()) { proyectos = (from p in ctx.Sam3_Rel_Usuario_Proyecto join eqp in ctx.Sam3_EquivalenciaProyecto on p.ProyectoID equals eqp.Sam3_ProyectoID where p.Activo && eqp.Activo && p.UsuarioID == usuario.UsuarioID && eqp.Sam3_ProyectoID == proyectoID select eqp.Sam2_ProyectoID).Distinct().AsParallel().ToList(); proyectos = proyectos.Where(x => x > 0).ToList(); patios = (from p in ctx.Sam3_Proyecto join pa in ctx.Sam3_Patio on p.PatioID equals pa.PatioID join eq in ctx.Sam3_EquivalenciaPatio on pa.PatioID equals eq.Sam2_PatioID where p.Activo && pa.Activo && eq.Activo && proyectos.Contains(p.ProyectoID) select eq.Sam2_PatioID).Distinct().AsParallel().ToList(); patios = patios.Where(x => x > 0).ToList(); List <string> elementos = new List <string>(); if (busqueda != "" && busqueda != null) { char[] lstElementoNumeroControl = busqueda.ToCharArray(); foreach (char i in lstElementoNumeroControl) { elementos.Add(i.ToString()); } } sam2_proyectoID = (from eq in ctx.Sam3_EquivalenciaProyecto where eq.Activo && eq.Sam3_ProyectoID == proyectoID select eq.Sam2_ProyectoID).AsParallel().SingleOrDefault(); listado = (from odt in ctx2.OrdenTrabajo join p in ctx2.Proyecto on odt.ProyectoID equals p.ProyectoID join pa in ctx2.Patio on p.PatioID equals pa.PatioID where proyectos.Contains(p.ProyectoID) && patios.Contains(pa.PatioID) && odt.ProyectoID == sam2_proyectoID && odt.EstatusOrdenID == (from es in ctx2.EstatusOrden where es.Nombre == "Activa" select es.EstatusOrdenID).FirstOrDefault() && elementos.Any(x => odt.NumeroOrden.Contains(x)) select new ListaCombos { id = odt.OrdenTrabajoID.ToString(), value = odt.NumeroOrden }).AsParallel().Distinct().OrderBy(x => x.value).ToList(); } } return(listado); } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
public object ObtenerFormatos(int odtsID, int obtenerFormato, Sam3_Usuario usuario) { try { using (SamContext ctx = new SamContext()) { using (Sam2Context ctx2 = new Sam2Context()) { OrdenTrabajoSpool OrdenTSpool = ctx2.OrdenTrabajoSpool.Where(x => x.OrdenTrabajoSpoolID == odtsID).AsParallel().SingleOrDefault(); //int faltantesDespacho = (from int sam3_ProyectoID = (from eqp in ctx.Sam3_EquivalenciaProyecto where eqp.Activo && eqp.Sam2_ProyectoID == OrdenTSpool.OrdenTrabajo.ProyectoID select eqp.Sam3_ProyectoID).AsParallel().SingleOrDefault(); string nombreProyecto = ctx.Sam3_Proyecto.Where(x => x.ProyectoID == sam3_ProyectoID).Select(x => x.Nombre).AsParallel().SingleOrDefault(); string numeroControl = ctx2.OrdenTrabajoSpool.Where(x => x.OrdenTrabajoSpoolID == OrdenTSpool.OrdenTrabajoSpoolID) .Select(x => x.NumeroControl).SingleOrDefault(); if (obtenerFormato == 0) { List <MaterialSpool> listaMateriales = (from ms in ctx2.MaterialSpool join odtm in ctx2.OrdenTrabajoMaterial on ms.MaterialSpoolID equals odtm.MaterialSpoolID join odts in ctx2.OrdenTrabajoSpool on odtm.OrdenTrabajoSpoolID equals odts.OrdenTrabajoSpoolID where odts.OrdenTrabajoSpoolID == OrdenTSpool.OrdenTrabajoSpoolID && odtm.TieneDespacho == false select ms).AsParallel().Distinct().ToList(); List <ListadoImpresionDocumental> listaFaltantes = new List <ListadoImpresionDocumental>(); if (listaMateriales != null && listaMateriales.Count > 0) { listaFaltantes = (from r in listaMateriales join it in ctx2.ItemCode on r.ItemCodeID equals it.ItemCodeID join tp in ctx2.TipoMaterial on it.TipoMaterialID equals tp.TipoMaterialID select new ListadoImpresionDocumental { Cantidad = r.Cantidad.ToString(), ItemCodeSteelgo = it.Codigo, TipoMaterial = tp.Nombre, MaterialSpoolID = r.MaterialSpoolID.ToString() }).AsParallel().Distinct().ToList(); foreach (ListadoImpresionDocumental l in listaFaltantes) { string temp = (from it in ctx.Sam3_ItemCode join rits in ctx.Sam3_Rel_ItemCode_ItemCodeSteelgo on it.ItemCodeID equals rits.ItemCodeID join its in ctx.Sam3_ItemCodeSteelgo on rits.ItemCodeSteelgoID equals its.ItemCodeSteelgoID where it.Codigo == l.ItemCodeSteelgo select its.Codigo).AsParallel().SingleOrDefault(); l.ItemCodeSteelgo = string.IsNullOrEmpty(temp) ? "" : temp; } } return(listaFaltantes.OrderBy(x => x.TipoMaterial).ToList()); } else { //si el spool aun no tiene un folio de impresion documental se crea uno, si ya lo tiene solo se devuelve el documento if (!ctx.Sam3_FolioImpresionDocumental.Where(x => x.SpoolID == OrdenTSpool.OrdenTrabajoSpoolID).Any()) { #region Generar Folio impresion Documental using (var ctx_tran = ctx.Database.BeginTransaction()) { Sam3_FolioImpresionDocumental nuevoRegistro = new Sam3_FolioImpresionDocumental(); nuevoRegistro.Activo = true; nuevoRegistro.FechaModificacion = DateTime.Now; nuevoRegistro.SpoolID = OrdenTSpool.OrdenTrabajoSpoolID; nuevoRegistro.UsuarioModificacion = usuario.UsuarioID; ctx.Sam3_FolioImpresionDocumental.Add(nuevoRegistro); ctx.SaveChanges(); ctx_tran.Commit(); } #endregion } HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); string rutaBase = ConfigurationManager.AppSettings["SamFiles"]; string ruta = rutaBase + nombreProyecto + "\\Traveler\\" + numeroControl + ".pdf"; string fileName = numeroControl + ".pdf"; FileStream iStream = new FileStream(ruta, FileMode.Open); //, FileAccess.Read, FileShare.Read); response.Content = new StreamContent(iStream); response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf"); response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment"); response.Content.Headers.ContentDisposition.FileName = fileName; return(response); } } } } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
/// <summary> /// Se obtienen los datos del ICS para el Grid /// Pantalla Catalogo ICS /// </summary> /// <returns></returns> public object obtenerInformacionICS(string item, string diametro1, string diametro2) { try { int items = Convert.ToInt32(item); List <ICSDatosAsociacion> lista = new List <ICSDatosAsociacion>(); using (SamContext ctx = new SamContext()) { using (Sam2Context ctx2 = new Sam2Context()) { lista = (from ics in ctx.Sam3_ItemCodeSteelgo join rids in ctx.Sam3_Rel_ItemCodeSteelgo_Diametro on ics.ItemCodeSteelgoID equals rids.ItemCodeSteelgoID join g in ctx.Sam3_Grupo on ics.GrupoID equals g.GrupoID join catced in ctx.Sam3_CatalogoCedulas on ics.CedulaID equals catced.CatalogoCedulasID join d1 in ctx.Sam3_Diametro on rids.Diametro1ID equals d1.DiametroID join d2 in ctx.Sam3_Diametro on rids.Diametro2ID equals d2.DiametroID join fa in ctx.Sam3_FamiliaAcero on ics.FamiliaAceroID equals fa.FamiliaAceroID join fm in ctx.Sam3_FamiliaMaterial on fa.FamiliaMaterialID equals fm.FamiliaMaterialID //join rics in ctx.Sam3_Rel_ItemCode_ItemCodeSteelgo on ics.ItemCodeSteelgoID equals rics.ItemCodeSteelgoID //join ic in ctx.Sam3_ItemCode on rics.ItemCodeID equals ic.ItemCodeID where ics.Activo && g.Activo && d1.Activo && d2.Activo && d1.DiametroID.ToString() == diametro1 && d2.DiametroID.ToString() == diametro2 /*&& ic.ItemCodeID == items && g.TipoMaterialID == ic.TipoMaterialID */ select new ICSDatosAsociacion { ItemCodeSteelgoID = ics.ItemCodeSteelgoID.ToString(), Codigo = ics.Codigo, Descripcion = ics.DescripcionEspanol, DescripcionIngles = ics.DescripcionIngles, DescripcionLarga = ics.DescripcionLargaEspanol, DescripcionLargaIngles = ics.DescripcionLargaIngles, Diametro1ID = rids.Diametro1ID.ToString(), Diametro1 = d1.Valor.ToString(), Diametro2 = d2.Valor.ToString(), Diametro2ID = rids.Diametro2ID.ToString(), Grupo = g.Nombre, GrupoID = ics.GrupoID.ToString(), AceroID = ics.FamiliaAceroID.ToString(), FamiliaMaterialID = fm.FamiliaMaterialID.ToString(), FamiliaMaterial = fm.Nombre, CedulaID = ics.CedulaID.ToString(), CedulaA = (from ced in ctx.Sam3_Cedula where ced.Activo && catced.CedulaA == ced.CedulaID select ced.Codigo).FirstOrDefault(), CedulaB = (from ced in ctx.Sam3_Cedula where ced.Activo && catced.CedulaB == ced.CedulaID select ced.Codigo).FirstOrDefault(), Libra = (from ced in ctx.Sam3_Cedula where ced.Activo && catced.CedulaC == ced.CedulaID select ced.Codigo).FirstOrDefault(), Inch = catced.EspesorIn.ToString(), MM = catced.EspesorMM.ToString(), Peso = ics.Peso.ToString(), Area = ics.Area.ToString() }).Distinct().AsParallel().ToList(); lista.ForEach(x => { int equiv = (from eq in ctx.Sam3_EquivalenciaFamiliaAcero where eq.Activo && eq.Sam3_FamiliaAceroID.ToString() == x.AceroID select eq.Sam2_FamiliaAceroID).AsParallel().SingleOrDefault(); x.Acero = (from fa in ctx2.FamiliaAcero where fa.FamiliaAceroID == equiv select fa.Nombre).AsParallel().SingleOrDefault(); }); } } return(lista); } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
/// <summary> /// Genera un listado de clientes para mostrarse en un combo box /// </summary> /// <param name="usuario"></param> /// <returns></returns> public object ObtenerListadoClientes(Sam3_Usuario usuario, int patioID) { try { using (Sam2Context ctx2 = new Sam2Context()) { using (SamContext ctx = new SamContext()) { List <Models.Cliente> cliente = new List <Models.Cliente>(); if (patioID > 0 && patioID != 1) { int patiosSam2 = (from eq in ctx.Sam3_EquivalenciaPatio where eq.Activo && eq.Sam3_PatioID == patioID select eq.Sam2_PatioID).AsParallel().SingleOrDefault(); List <int> clientesSam3 = new List <int>(); clientesSam3 = (from p in ctx.Sam3_Proyecto join c in ctx.Sam3_Cliente on p.ClienteID equals c.ClienteID where p.Activo && p.PatioID == patioID select c.Sam2ClienteID.Value).AsParallel().ToList(); cliente = (from r in ctx2.Cliente join p in ctx2.Proyecto on r.ClienteID equals p.ClienteID join pa in ctx2.Patio on p.PatioID equals pa.PatioID where pa.PatioID == patiosSam2 && clientesSam3.Contains(r.ClienteID) select new Models.Cliente { Nombre = r.Nombre, ClienteID = r.ClienteID.ToString() }).AsParallel().Distinct().ToList(); } if (patioID == 1) { cliente.Add((from c in ctx.Sam3_Cliente where c.Nombre == "Cliente Default" select new Models.Cliente { Nombre = c.Nombre, ClienteID = "-1" //c.ClienteID.ToString() }).SingleOrDefault()); } cliente = cliente.GroupBy(x => x.ClienteID).Select(x => x.First()).ToList(); return(cliente); } } } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
public object obtenerListadoPorItemCode(string proyectoID) { try { List <ListadoMaterialesPorItemCode> listado = new List <ListadoMaterialesPorItemCode>(); using (SamContext ctx = new SamContext()) { listado = (from ic in ctx.Sam3_ItemCode join rid in ctx.Sam3_Rel_ItemCode_Diametro on ic.ItemCodeID equals rid.ItemCodeID join rics in ctx.Sam3_Rel_ItemCode_ItemCodeSteelgo on rid.Rel_ItemCode_Diametro_ID equals rics.Rel_ItemCode_Diametro_ID join ricd in ctx.Sam3_Rel_ItemCodeSteelgo_Diametro on rics.Rel_ItemCodeSteelgo_Diametro_ID equals ricd.Rel_ItemCodeSteelgo_Diametro_ID join ics in ctx.Sam3_ItemCodeSteelgo on ricd.ItemCodeSteelgoID equals ics.ItemCodeSteelgoID join tm in ctx.Sam3_TipoMaterial on ic.TipoMaterialID equals tm.TipoMaterialID join d1 in ctx.Sam3_Diametro on rid.Diametro1ID equals d1.DiametroID join d2 in ctx.Sam3_Diametro on rid.Diametro2ID equals d2.DiametroID where ic.Activo && rics.Activo && ics.Activo && tm.Activo && rid.Activo && ricd.Activo && d1.Activo && d2.Activo && ic.ProyectoID.ToString() == proyectoID select new ListadoMaterialesPorItemCode { ItemCodeID = ic.ItemCodeID.ToString(), ItemCode = ic.Codigo, ItemCodeSteelgoID = ics.ItemCodeSteelgoID.ToString(), ItemCodeSteelgo = ics.Codigo, Descripcion = ics.DescripcionEspanol, D1 = d1.Valor.ToString(), D2 = d2.Valor.ToString(), TipoMaterial = tm.Nombre, TotalRecibido = (from nui in ctx.Sam3_NumeroUnicoInventario join nu in ctx.Sam3_NumeroUnico on nui.NumeroUnicoID equals nu.NumeroUnicoID where nui.Activo && nu.Activo && nu.ItemCodeID == ic.ItemCodeID select(int?) nui.CantidadRecibida ).Sum().ToString(), OtrasEntradas = (from num in ctx.Sam3_NumeroUnicoMovimiento join tmov in ctx.Sam3_TipoMovimiento on num.TipoMovimientoID equals tmov.TipoMovimientoID join nu in ctx.Sam3_NumeroUnico on num.NumeroUnicoID equals nu.NumeroUnicoID where num.Activo && tmov.Activo && nu.Activo && tmov.TipoMovimientoID == 9 && nu.ItemCodeID == ic.ItemCodeID select(int?) num.Cantidad).Sum().ToString(), TotalCondicionada = (from num in ctx.Sam3_NumeroUnicoMovimiento join nu in ctx.Sam3_NumeroUnico on num.NumeroUnicoID equals nu.NumeroUnicoID where num.Activo && nu.Activo && nu.ItemCodeID == ic.ItemCodeID && num.Estatus == "C" select(int?) num.Cantidad).Sum().ToString(), TotalRechazado = (from num in ctx.Sam3_NumeroUnicoMovimiento join nu in ctx.Sam3_NumeroUnico on num.NumeroUnicoID equals nu.NumeroUnicoID where num.Activo && nu.Activo && nu.ItemCodeID == ic.ItemCodeID && num.Estatus == "R" select(int?) num.Cantidad).Sum().ToString(), TotalDanado = (from num in ctx.Sam3_NumeroUnicoMovimiento join nu in ctx.Sam3_NumeroUnico on num.NumeroUnicoID equals nu.NumeroUnicoID where num.Activo && nu.Activo && nu.ItemCodeID == ic.ItemCodeID && num.Estatus == "D" select(int?) num.Cantidad).Sum().ToString(), TotalRecibidoNeto = (from nui in ctx.Sam3_NumeroUnicoInventario join nu in ctx.Sam3_NumeroUnico on nui.NumeroUnicoID equals nu.NumeroUnicoID where nui.Activo && nu.Activo && nu.ItemCodeID == ic.ItemCodeID select nui.CantidadRecibida - nui.CantidadDanada).Sum().ToString(), EntradasDesdeICEquivalente = "", SalidasTemporales = (from num in ctx.Sam3_NumeroUnicoMovimiento join tmov in ctx.Sam3_TipoMovimiento on num.TipoMovimientoID equals tmov.TipoMovimientoID join nu in ctx.Sam3_NumeroUnico on num.NumeroUnicoID equals nu.NumeroUnicoID where num.Activo && tmov.Activo && nu.Activo && nu.ItemCodeID == ic.ItemCodeID && tmov.TipoMovimientoID == 12 select(int?) num.Cantidad).Sum().ToString(), TotalOtrasSalidas = (from num in ctx.Sam3_NumeroUnicoMovimiento join tmov in ctx.Sam3_TipoMovimiento on num.TipoMovimientoID equals tmov.TipoMovimientoID join nu in ctx.Sam3_NumeroUnico on num.NumeroUnicoID equals nu.NumeroUnicoID where num.Activo && tmov.Activo && nu.Activo && tmov.TipoMovimientoID == 8 && nu.ItemCodeID == ic.ItemCodeID select(int?) num.Cantidad).Sum().ToString(), TotalMermas = (from num in ctx.Sam3_NumeroUnicoMovimiento join tmov in ctx.Sam3_TipoMovimiento on num.TipoMovimientoID equals tmov.TipoMovimientoID join nu in ctx.Sam3_NumeroUnico on num.NumeroUnicoID equals nu.NumeroUnicoID where num.Activo && tmov.Activo && nu.Activo && nu.ItemCodeID == ic.ItemCodeID && tmov.TipoMovimientoID == 4 select(int?) num.Cantidad).Sum().ToString(), TotalDespachadoPorCortar = (from num in ctx.Sam3_NumeroUnicoMovimiento join tmov in ctx.Sam3_TipoMovimiento on num.TipoMovimientoID equals tmov.TipoMovimientoID join nu in ctx.Sam3_NumeroUnico on num.NumeroUnicoID equals nu.NumeroUnicoID where num.Activo && tmov.Activo && nu.Activo && tmov.TipoMovimientoID == 12 && nu.ItemCodeID == ic.ItemCodeID select(int?) num.Cantidad).Sum().ToString(), TotalCortado = (from num in ctx.Sam3_NumeroUnicoMovimiento join tmov in ctx.Sam3_TipoMovimiento on num.TipoMovimientoID equals tmov.TipoMovimientoID join nu in ctx.Sam3_NumeroUnico on num.NumeroUnicoID equals nu.NumeroUnicoID where num.Activo && tmov.Activo && nu.Activo && tmov.TipoMovimientoID == 15 && nu.ItemCodeID == ic.ItemCodeID select(int?) num.Cantidad).Sum().ToString(), DespachadoAProduccion = (from num in ctx.Sam3_NumeroUnicoMovimiento join tmov in ctx.Sam3_TipoMovimiento on num.TipoMovimientoID equals tmov.TipoMovimientoID join nu in ctx.Sam3_NumeroUnico on num.NumeroUnicoID equals nu.NumeroUnicoID where num.Activo && tmov.Activo && nu.Activo && tmov.TipoMovimientoID == 2 && nu.ItemCodeID == ic.ItemCodeID select(int?) num.Cantidad).Sum().ToString(), TotalFisicoEnAlmacen = (from nui in ctx.Sam3_NumeroUnicoInventario join nu in ctx.Sam3_NumeroUnico on nui.NumeroUnicoID equals nu.NumeroUnicoID where nui.Activo && nu.Activo && nu.ItemCodeID == ic.ItemCodeID select(int?) nui.InventarioFisico).Sum().ToString(), InventarioDisponibleCruce = (from nui in ctx.Sam3_NumeroUnicoInventario join nu in ctx.Sam3_NumeroUnico on nui.NumeroUnicoID equals nu.NumeroUnicoID where nui.Activo && nu.Activo && nu.ItemCodeID == ic.ItemCodeID select(int?) nui.InventarioDisponibleCruce).Sum().ToString(), }).AsParallel().ToList(); listado = listado.GroupBy(x => x.ItemCodeID).Select(x => x.First()).ToList(); } using (Sam2Context ctx2 = new Sam2Context()) { listado.ForEach(x => { x.TotalIngenieria = (from otm in ctx2.OrdenTrabajoMaterial join nu in ctx2.NumeroUnico on otm.NumeroUnicoDespachadoID equals nu.NumeroUnicoID where nu.ItemCodeID.ToString() == x.ItemCodeID select(int?) otm.CantidadDespachada).Sum().ToString(); x.TotalOrdenTrabajo = (from ms in ctx2.MaterialSpool join otm in ctx2.OrdenTrabajoMaterial on ms.MaterialSpoolID equals otm.MaterialSpoolID where ms.ItemCodeID.ToString() == x.ItemCodeID select(int?) otm.OrdenTrabajoMaterialID).Count().ToString(); x.DespachadoPorCortarParaICEquivalente = (from ice in ctx2.ItemCodeEquivalente join nu in ctx2.NumeroUnico on ice.ItemCodeEquivalenteID equals nu.ItemCodeID join num in ctx2.NumeroUnicoMovimiento on nu.NumeroUnicoID equals num.NumeroUnicoID join tm in ctx2.TipoMovimiento on num.TipoMovimientoID equals tm.TipoMovimientoID where ice.ItemCodeID.ToString() == x.ItemCodeID && tm.TipoMovimientoID == 15 select(int?) num.Cantidad).Sum().ToString(); x.CortadoParaICEquivalente = (from ice in ctx2.ItemCodeEquivalente join nu in ctx2.NumeroUnico on ice.ItemCodeEquivalenteID equals nu.ItemCodeID join num in ctx2.NumeroUnicoMovimiento on nu.NumeroUnicoID equals num.NumeroUnicoID join tm in ctx2.TipoMovimiento on num.TipoMovimientoID equals tm.TipoMovimientoID where ice.ItemCodeID.ToString() == x.ItemCodeID && tm.TipoMovimientoID == 18 select(int?) num.Cantidad).Sum().ToString(); x.TotalCongelado = (from otm in ctx2.OrdenTrabajoMaterial join nu in ctx2.NumeroUnico on otm.NumeroUnicoCongeladoID equals nu.NumeroUnicoID where nu.ItemCodeID.ToString() == x.ItemCodeID select(int?) otm.CantidadCongelada).Sum().ToString(); x.TotalPorDespachar = (from nu in ctx2.NumeroUnico join nui in ctx2.NumeroUnicoInventario on nu.NumeroUnicoID equals nui.NumeroUnicoID join otm in ctx2.OrdenTrabajoMaterial on nu.NumeroUnicoID equals otm.NumeroUnicoDespachadoID where nu.ItemCodeID.ToString() == x.ItemCodeID select(int?) nui.CantidadRecibida - otm.CantidadDespachada).Sum().ToString(); x.DespachadoDesdeICEquivalente = (from ice in ctx2.ItemCodeEquivalente join nu in ctx2.NumeroUnico on ice.ItemCodeEquivalenteID equals nu.ItemCodeID join num in ctx2.NumeroUnicoMovimiento on nu.NumeroUnicoID equals num.NumeroUnicoID join tm in ctx2.TipoMovimiento on num.TipoMovimientoID equals tm.TipoMovimientoID where ice.ItemCodeID.ToString() == x.ItemCodeID && tm.TipoMovimientoID == 2 select(int?) num.Cantidad).Sum().ToString(); x.EntradasDesdeICEquivalente = (from ice in ctx2.ItemCodeEquivalente join nu in ctx2.NumeroUnico on ice.ItemEquivalenteID equals nu.ItemCodeID join num in ctx2.NumeroUnicoMovimiento on nu.NumeroUnicoID equals num.NumeroUnicoID join tm in ctx2.TipoMovimiento on num.TipoMovimientoID equals tm.TipoMovimientoID where ice.ItemCodeID.ToString() == x.ItemCodeID && tm.EsEntrada select(int?) num.Cantidad).Sum().ToString(); x.SalidaParaICEquivalente = (from ice in ctx2.ItemCodeEquivalente join nu in ctx2.NumeroUnico on ice.ItemEquivalenteID equals nu.ItemCodeID join num in ctx2.NumeroUnicoMovimiento on nu.NumeroUnicoID equals num.NumeroUnicoID join tm in ctx2.TipoMovimiento on num.TipoMovimientoID equals tm.TipoMovimientoID where ice.ItemCodeID.ToString() == x.ItemCodeID && !tm.EsEntrada select(int?) num.Cantidad).Sum().ToString(); x.DisponibleICEquivalente = (from ice in ctx2.ItemCodeEquivalente join nu in ctx2.NumeroUnico on ice.ItemEquivalenteID equals nu.ItemCodeID join nui in ctx2.NumeroUnicoInventario on nu.NumeroUnicoID equals nui.NumeroUnicoID where ice.ItemCodeID.ToString() == x.ItemCodeID select(int?) nui.InventarioDisponibleCruce).Sum().ToString(); x.TotalDisponibleParaCruce = ((String.IsNullOrEmpty(x.InventarioDisponibleCruce) ? 0 : Convert.ToInt32(x.InventarioDisponibleCruce)) + (String.IsNullOrEmpty(x.DisponibleICEquivalente) ? 0 : Convert.ToInt32(x.DisponibleICEquivalente))).ToString(); }); } return(listado); } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
public object ListadoNCImpresionDocumental(string busqueda, Sam3_Usuario usuario) { try { if (busqueda == null || (busqueda.Length == 1 && busqueda.Contains("-"))) { busqueda = ""; } if ((busqueda.Length > 1 && busqueda.Contains("\\n"))) { busqueda = busqueda.Replace("\\n", "-"); } if ((busqueda.Length == 1 && busqueda.Contains("-"))) { busqueda = ""; } using (Sam2Context ctx2 = new Sam2Context()) { List <int> proyectos = new List <int>(); List <int> patios = new List <int>(); UsuarioBd.Instance.ObtenerPatiosYProyectosDeUsuario(usuario.UsuarioID, out proyectos, out patios); using (SamContext ctx = new SamContext()) { proyectos = (from eqp in ctx.Sam3_EquivalenciaProyecto where eqp.Activo && proyectos.Contains(eqp.Sam3_ProyectoID) select eqp.Sam2_ProyectoID).Distinct().AsParallel().ToList(); proyectos = proyectos.Where(x => x > 0).ToList(); patios = (from p in ctx.Sam3_Proyecto join pa in ctx.Sam3_Patio on p.PatioID equals pa.PatioID join eq in ctx.Sam3_EquivalenciaPatio on pa.PatioID equals eq.Sam3_PatioID join eqp in ctx.Sam3_EquivalenciaProyecto on p.ProyectoID equals eqp.Sam3_ProyectoID where p.Activo && pa.Activo && eq.Activo && proyectos.Contains(eqp.Sam2_ProyectoID) select eq.Sam2_PatioID).Distinct().AsParallel().ToList(); patios = patios.Where(x => x > 0).ToList(); } int consecutivo = 0; if (busqueda.Contains("-") && busqueda != "") { string[] divididos = busqueda.Split('-').ToArray(); int.TryParse(divididos[1], out consecutivo); busqueda = divididos[0] != "" ? divididos[0].Replace("0", string.Empty).ToUpper() : ""; } else { busqueda = busqueda.Replace("0", string.Empty).ToUpper(); } List <ComboNumeroControl> listado = (from odts in ctx2.OrdenTrabajoSpool join odt in ctx2.OrdenTrabajo on odts.OrdenTrabajoID equals odt.OrdenTrabajoID join odtm in ctx2.OrdenTrabajoMaterial on odts.OrdenTrabajoSpoolID equals odtm.OrdenTrabajoSpoolID join ms in ctx2.MaterialSpool on odtm.MaterialSpoolID equals ms.MaterialSpoolID join it in ctx2.ItemCode on ms.ItemCodeID equals it.ItemCodeID where !(from d in ctx2.Despacho where d.Cancelado == false select d.OrdenTrabajoSpoolID).Contains(odts.OrdenTrabajoSpoolID) && !(from sh in ctx2.SpoolHold where sh.SpoolID == odts.SpoolID && (sh.Confinado || sh.TieneHoldCalidad || sh.TieneHoldIngenieria) select sh).Any() && proyectos.Contains(odt.ProyectoID) select new ComboNumeroControl { NumeroControlID = odts.OrdenTrabajoSpoolID.ToString(), //odts.OrdenTrabajoSpoolID.ToString(), NumeroControl = odts.NumeroControl //odts.NumeroControl }).Distinct().AsParallel().ToList(); List <ComboNumeroControl> filtrado = new List <ComboNumeroControl>(); listado = listado.GroupBy(x => x.NumeroControlID).Select(x => x.First()).ToList(); if (busqueda == "") { return(listado.OrderBy(x => x.NumeroControl).ToList()); } foreach (ComboNumeroControl lst in listado) { if (lst.NumeroControl.Contains("-") && lst.NumeroControl != "") { string[] elem = lst.NumeroControl.Split('-').ToArray(); string simplificado = elem[0].Replace("0", string.Empty); int consec = Convert.ToInt32(elem[1]); if (consecutivo > 0) { if (simplificado.Contains(busqueda) && consec == consecutivo) { filtrado.Add(lst); } } else { if (simplificado.Contains(busqueda)) { filtrado.Add(lst); } } } else { if (lst.NumeroControl.Contains(busqueda)) { filtrado.Add(lst); } } } #if DEBUG JavaScriptSerializer serializer = new JavaScriptSerializer(); string json = serializer.Serialize(filtrado); #endif return(filtrado.OrderBy(x => x.NumeroControl).ToList()); } } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
/// <summary> /// Método para obtener los datos del aviso de llegada correspondientes al folio /// para enviarlos por correo /// </summary> /// <param name="folio">Folio seleccionado</param> /// <returns>Lista de Formato Permiso aduana</returns> public TransactionalInformation ObtenerDatosAvisoLlegada(int folio) { try { List <FormatoPermisoAduana> listaAvisoLlegada = new List <FormatoPermisoAduana>(); List <FormatoPermisoAduana> listaProyectos = new List <FormatoPermisoAduana>(); List <FormatoPermisoAduana> listaVehiculos = new List <FormatoPermisoAduana>(); List <FormatoPermisoAduana> listaClientes = new List <FormatoPermisoAduana>(); int clienteFolioAviso = 0; string nombreClienteFolioAviso = ""; using (Sam2Context ctx2 = new Sam2Context()) { listaClientes = (from cl in ctx2.Cliente select new FormatoPermisoAduana { ClienteID = cl.ClienteID, NombreCliente = cl.Nombre }).AsParallel().ToList(); } using (SamContext ctx = new SamContext()) { var cliente = (from av in ctx.Sam3_FolioAvisoLlegada where (av.FolioAvisoLlegadaID == folio) select av.ClienteID).FirstOrDefault(); for (int i = 0; i < listaClientes.Count; i++) { if (cliente == listaClientes[i].ClienteID) { clienteFolioAviso = listaClientes[i].ClienteID; nombreClienteFolioAviso = listaClientes[i].NombreCliente; break; } } listaAvisoLlegada = (from av in ctx.Sam3_FolioAvisoLlegada where (av.FolioAvisoLlegadaID == folio) select new FormatoPermisoAduana { FechaRecepcion = av.FechaRecepcion, NombreCliente = nombreClienteFolioAviso }).AsParallel().ToList(); listaProyectos = (from avp in ctx.Sam3_Rel_FolioAvisoLlegada_Proyecto join p in ctx.Sam3_Proyecto on avp.ProyectoID equals p.ProyectoID where avp.FolioAvisoLlegadaID == folio select new FormatoPermisoAduana { NombreProyecto = p.Nombre }).AsParallel().ToList(); listaVehiculos = (from av in ctx.Sam3_Rel_FolioAvisoLlegada_Vehiculo join v in ctx.Sam3_Vehiculo on av.VehiculoID equals v.VehiculoID join vc in ctx.Sam3_Rel_Vehiculo_Chofer on av.VehiculoID equals vc.VehiculoID join ch in ctx.Sam3_Chofer on vc.ChoferID equals ch.ChoferID join vt in ctx.Sam3_Rel_Vehiculo_Transportista on av.VehiculoID equals vt.VehiculoID join t in ctx.Sam3_Transportista on vt.TransportistaID equals t.TransportistaID join tv in ctx.Sam3_TipoVehiculo on v.TipoVehiculoID equals tv.TipoVehiculoID where av.FolioAvisoLlegadaID == folio select new FormatoPermisoAduana { PlacasPlana = v.Placas, Unidad = v.Unidad, Modelo = v.Modelo, TipoVehiculo = tv.Nombre, NombreChofer = ch.Nombre, NombreTransportista = t.Nombre }).AsParallel().ToList(); listaAvisoLlegada.AddRange(listaProyectos); listaAvisoLlegada.AddRange(listaVehiculos); } TransactionalInformation resultEmail = EnviarCorreo(listaAvisoLlegada, listaVehiculos); if (resultEmail.ReturnCode == 200) { TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add("Ok"); result.ReturnCode = 200; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } else { resultEmail.ReturnCode = 500; resultEmail.ReturnStatus = false; resultEmail.IsAuthenicated = true; return(resultEmail); } } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }
public object ConvertirJuntasPorODTS(int odtsID, Sam3_Usuario usuario) { try { using (SamContext ctx = new SamContext()) { using (var ctx_tran = ctx.Database.BeginTransaction()) { using (Sam2Context ctx2 = new Sam2Context()) { using (var ctx2_tran = ctx2.Database.BeginTransaction()) { //buscamos las juntas que aun no tienen ningun proceso de armado, soldadura o inspeccion visual List <JuntaSpool> listaJuntas = (from js in ctx2.JuntaSpool join odts in ctx2.OrdenTrabajoSpool on js.SpoolID equals odts.SpoolID where odts.OrdenTrabajoSpoolID == odtsID && !(from jwks in ctx2.JuntaWorkstatus where jwks.JuntaSpoolID == js.JuntaSpoolID && jwks.JuntaArmadoID > 0 && jwks.JuntaArmadoID != null && jwks.JuntaSoldaduraID > 0 && jwks.JuntaSoldaduraID != null && jwks.JuntaInspeccionVisualID > 0 && jwks.JuntaInspeccionVisualID != null && jwks.JuntaFinal select jwks.JuntaSpoolID).Contains(js.JuntaSpoolID) && (from tj in ctx2.TipoJunta where tj.Nombre == "SHOP" || tj.Nombre == "FIELD" select tj.TipoJuntaID).Contains(js.TipoJuntaID) select js).AsParallel().Distinct().ToList(); List <Sam3_JuntaSpool> sam3_JuntasSpool = (from eq in ctx.Sam3_EquivalenciaJuntaSpool join js in ctx.Sam3_JuntaSpool on eq.Sam3_JuntaSpoolID equals js.JuntaSpoolID where listaJuntas.Select(x => x.JuntaSpoolID).Contains(eq.Sam2_JuntaSpoolID) select js).AsParallel().ToList(); int sam2_fabAreaID = (from f in ctx2.FabArea where f.Nombre == "FIELD" select f.FabAreaID).AsParallel().SingleOrDefault(); int sam3_fabAreaID = (from f in ctx.Sam3_FabArea where f.Nombre == "FIELD" select f.FabAreaID).AsParallel().SingleOrDefault(); listaJuntas.ForEach(x => x.FabAreaID = sam2_fabAreaID); sam3_JuntasSpool.ForEach(x => x.FabAreaID = sam3_fabAreaID); ctx.SaveChanges(); ctx2.SaveChanges(); ctx2_tran.Commit(); } } ctx_tran.Commit(); } } return(ObtenerJuntasPorODTS(odtsID, usuario)); } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add(ex.Message); result.ReturnCode = 500; result.ReturnStatus = false; result.IsAuthenicated = true; return(result); } }