Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 5
0
        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);
            }
        }
Esempio n. 6
0
        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);
            }
        }
Esempio n. 7
0
        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);
            }
        }
Esempio n. 8
0
        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);
            }
        }
Esempio n. 9
0
        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);
            }
        }
Esempio n. 14
0
        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);
            }
        }
Esempio n. 15
0
        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);
            }
        }
Esempio n. 16
0
        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);
            }
        }
Esempio n. 19
0
        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);
            }
        }
Esempio n. 22
0
        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);
            }
        }
Esempio n. 23
0
        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);
            }
        }
Esempio n. 24
0
        /// <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);
            }
        }
Esempio n. 25
0
        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);
            }
        }