public object CambiarEstatusFolio(int FolioAviso, string NumeroPermiso, Sam3_Usuario usuario) { try { using (SamContext ctx = new SamContext()) { int permisoID = (from per in ctx.Sam3_PermisoAduana where per.FolioAvisoLlegadaID == FolioAviso && per.Activo && per.Estatus == "Autorizado" select per.PermisoAduanaID).AsParallel().SingleOrDefault(); if (ctx.Sam3_PermisoAduana.Where(x => x.FolioAvisoLlegadaID == FolioAviso && x.Activo).Any()) { Sam3_PermisoAduana permisoBd = ctx.Sam3_PermisoAduana.Where(x => x.FolioAvisoLlegadaID == FolioAviso && x.Activo) .AsParallel().SingleOrDefault(); permisoBd.PermisoAutorizado = true; permisoBd.PermisoTramite = false; permisoBd.NumeroPermiso = NumeroPermiso; permisoBd.Estatus = "Autorizado"; permisoBd.FechaAutorización = DateTime.Now; permisoBd.FechaModificacion = DateTime.Now; permisoBd.UsuarioModificacion = usuario.UsuarioID; ctx.SaveChanges(); } if (ctx.Sam3_Rel_PermisoAduana_Documento.Where(x => x.PermisoAduanaID == permisoID && x.Activo).Any()) { //Actualizar estatus de FolioAvisoLlegada Sam3_FolioAvisoLlegada aviso = ctx.Sam3_FolioAvisoLlegada.Where(x => x.FolioAvisoLlegadaID == FolioAviso) .AsParallel().SingleOrDefault(); aviso.Estatus = "Autorizado"; aviso.FechaModificacion = DateTime.Now; aviso.UsuarioModificacion = usuario.UsuarioID; ctx.SaveChanges(); return(true); } else { throw new Exception("El folio no cuenta con un permiso Autorizado"); } } } 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 GenerarPaseSalida(int folioAvisoLlegadaID, string cuadrillaDescarga, Sam3_Usuario usuario) { try { using (SamContext ctx = new SamContext()) { Sam3_FolioAvisoLlegada foliollegadaBd = ctx.Sam3_FolioAvisoLlegada.Where(x => x.FolioAvisoLlegadaID == folioAvisoLlegadaID) .AsParallel().SingleOrDefault(); foliollegadaBd.PaseSalidaEnviado = true; foliollegadaBd.FechaModificacion = DateTime.Now; foliollegadaBd.UsuarioModificacion = usuario.UsuarioID; foliollegadaBd.CuadrillaDescarga = cuadrillaDescarga; Sam3_FolioAvisoEntrada folioEntradaBd = ctx.Sam3_FolioAvisoEntrada.Where(x => x.FolioAvisoLlegadaID == folioAvisoLlegadaID) .AsParallel().SingleOrDefault(); folioEntradaBd.FechaFinDescarga = DateTime.Now; folioEntradaBd.FechaModificacion = DateTime.Now; folioEntradaBd.UsuarioModificacion = usuario.UsuarioID; ctx.SaveChanges(); if (!(bool)EnviarAvisosBd.Instance.EnviarNotificación(3, string.Format("Se generó un nuevo pase de salida para el folio {0} con fecha {1}", foliollegadaBd.FolioAvisoLlegadaID, foliollegadaBd.FechaModificacion), usuario)) { //Agregar error a la bitacora PENDIENTE } 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> /// Guarda Registro de los documentos cargados para el pase de salida /// </summary> /// <param name="documentos"></param> /// <returns></returns> public object GuardarDocumentoPaseSalida(List <DocumentoPosteado> documentos) { try { using (SamContext ctx = new SamContext()) { int Folio = documentos[0].FolioAvisoLlegadaID.GetValueOrDefault(); //Actualizamos el dato de Pase Salida Enviado del Folio aviso Llegada Sam3_FolioAvisoLlegada folioBd = ctx.Sam3_FolioAvisoLlegada.Where(x => x.FolioAvisoLlegadaID == Folio && x.Activo) .AsParallel().SingleOrDefault(); foreach (DocumentoPosteado d in documentos) { int tipoArchivoId = ctx.Sam3_TipoArchivo.Where(x => x.Nombre == d.TipoArchivoPaseSalida && x.Activo).Select(x => x.TipoArchivoID) .AsParallel().SingleOrDefault(); Sam3_Rel_FolioAvisoLlegada_PaseSalida_Archivo nuevoDoc = new Sam3_Rel_FolioAvisoLlegada_PaseSalida_Archivo(); nuevoDoc.Activo = true; nuevoDoc.ContentType = d.ContentType; nuevoDoc.DocGuid = d.DocGuid; nuevoDoc.DocumentoID = 0; nuevoDoc.Extencion = d.Extencion; nuevoDoc.FechaModificacion = DateTime.Now; nuevoDoc.FolioAvisoLlegadaID = folioBd.FolioAvisoLlegadaID; nuevoDoc.Nombre = d.FileName; nuevoDoc.TipoArchivoID = tipoArchivoId; nuevoDoc.Url = d.Path; nuevoDoc.UsuarioModificacion = d.UserId; nuevoDoc.IncidenciaID = d.IncidenciaID == -1 ? null : d.IncidenciaID; ctx.Sam3_Rel_FolioAvisoLlegada_PaseSalida_Archivo.Add(nuevoDoc); } ctx.SaveChanges(); return(true); } } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- return(false); } }
/// <summary> /// Actualizar un folio cuantificacion existente /// </summary> /// <param name="datosCuantificacion">informacion del folio cuantificacion</param> /// <param name="usuario">usuario actual</param> /// <returns>folio de cuantificacion creado, proyectos</returns> public object UpdateGuardarFolio(DatosFolioLlegadaCuantificacion datosCuantificacion, Sam3_Usuario usuario) { try { using (SamContext ctx = new SamContext()) { using (var ctx_tran = ctx.Database.BeginTransaction()) { Boolean activarFolioConfiguracionCuantificacion = !string.IsNullOrEmpty(ConfigurationManager.AppSettings["ActivarFolioConfiguracionCuantificacion"]) ? (ConfigurationManager.AppSettings["ActivarFolioConfiguracionCuantificacion"].Equals("1") ? true : false) : false; bool activaConfigFolioLlegada = ConfigurationManager.AppSettings["ActivarFolioConfiguracion"].Equals("1") ? true : false; int avisoEntradaID = ctx.Sam3_FolioAvisoEntrada.Where(x => x.FolioAvisoLlegadaID == datosCuantificacion.FolioAvisollegadaId && x.Activo).Select(x => x.FolioAvisoEntradaID).AsParallel().First(); Sam3_FolioCuantificacion folioCuantificacion = ctx.Sam3_FolioCuantificacion .Where(x => x.FolioCuantificacionID == datosCuantificacion.FolioCuantificacionID && x.Activo).AsParallel().SingleOrDefault(); Sam3_FolioAvisoLlegada folioLlegada = (from fc in ctx.Sam3_FolioCuantificacion join fe in ctx.Sam3_FolioAvisoEntrada on fc.FolioAvisoEntradaID equals fe.FolioAvisoEntradaID join fa in ctx.Sam3_FolioAvisoLlegada on fe.FolioAvisoLlegadaID equals fa.FolioAvisoLlegadaID where fc.Activo && fe.Activo && fa.Activo && fc.FolioCuantificacionID == folioCuantificacion.FolioCuantificacionID select fa).AsParallel().FirstOrDefault(); if (folioCuantificacion.Estatus != "Terminado" && folioCuantificacion.Estatus != "Cerrado") { folioCuantificacion.Estatus = "En Proceso de Recepción"; } folioCuantificacion.FolioAvisoEntradaID = avisoEntradaID; folioCuantificacion.ProyectoID = datosCuantificacion.ProyectoID; folioCuantificacion.PackingList = datosCuantificacion.PackingList; folioCuantificacion.TipoUsoID = datosCuantificacion.TipoUso; folioCuantificacion.FechaModificacion = DateTime.Now; folioCuantificacion.UsuarioModificacion = usuario.UsuarioID; folioCuantificacion.Activo = true; folioCuantificacion.Factura = datosCuantificacion.Factura; if (datosCuantificacion.TipoPackingList != null) { folioCuantificacion.TipoMaterialID = datosCuantificacion.TipoPackingList; } List <Sam3_ItemCode> itemCodes; List <Sam3_NumeroUnico> numerosUnicos; if (folioCuantificacion.Sam3_Rel_FolioCuantificacion_ItemCode.Count > 0) // actualizar tipo de uso en itemCodes { itemCodes = (from rfi in folioCuantificacion.Sam3_Rel_FolioCuantificacion_ItemCode join rid in ctx.Sam3_Rel_ItemCode_Diametro on rfi.Rel_ItemCode_Diametro_ID equals rid.Rel_ItemCode_Diametro_ID join it in ctx.Sam3_ItemCode on rid.ItemCodeID equals it.ItemCodeID where rid.Activo && it.Activo select it).AsParallel().Distinct().ToList(); //Agrego todos los itemCodes que esten en los bultos relacionados con el folio de cuantificacion itemCodes.AddRange((from b in ctx.Sam3_Bulto join rbi in ctx.Sam3_Rel_Bulto_ItemCode on b.BultoID equals rbi.BultoID join rid in ctx.Sam3_Rel_ItemCode_Diametro on rbi.Rel_ItemCode_Diametro_ID equals rid.Rel_ItemCode_Diametro_ID join it in ctx.Sam3_ItemCode on rid.ItemCodeID equals it.ItemCodeID where b.FolioCuantificacionID == folioCuantificacion.FolioCuantificacionID && b.Activo && rbi.Activo && rid.Activo && it.Activo select it).AsParallel().Distinct().ToList()); itemCodes.ForEach(x => x.TipoUsoID = datosCuantificacion.TipoUso); //Actualizar todos los numeros unicos que esten relacionados con los ItemCodes //numerosUnicos = (from it in itemCodes // join nu in ctx.Sam3_NumeroUnico on it.ItemCodeID equals nu.ItemCodeID // where it.Activo && nu.Activo // select nu).AsParallel().Distinct().ToList(); //numerosUnicos.ForEach(x => x.TipoUsoID = datosCuantificacion.TipoUso); } ctx.SaveChanges(); //Guardar Orden de Compra y Factura Sam3_FolioAvisoEntrada folioEntrada = (from ave in ctx.Sam3_FolioAvisoEntrada where ave.Activo && ave.FolioAvisoLlegadaID == datosCuantificacion.FolioAvisollegadaId select ave).AsParallel().SingleOrDefault(); folioEntrada.OrdenCompra = datosCuantificacion.OrdenDeCompra; //folioEntrada.Factura = datosCuantificacion.Factura; folioEntrada.FechaModificacion = DateTime.Now; folioEntrada.UsuarioModificacion = usuario.UsuarioID; ctx.SaveChanges(); #region Proyectos int cuentaProyectos = (from rel in ctx.Sam3_Rel_FolioAvisoLlegada_Proyecto join fe in ctx.Sam3_FolioAvisoEntrada on rel.FolioAvisoLlegadaID equals fe.FolioAvisoLlegadaID join fc in ctx.Sam3_FolioCuantificacion on fe.FolioAvisoEntradaID equals fc.FolioAvisoEntradaID join p in ctx.Sam3_Proyecto on rel.ProyectoID equals p.ProyectoID where fc.FolioCuantificacionID == folioCuantificacion.FolioCuantificacionID select rel.ProyectoID).Count(); int folioAvisoLlegada = (from rel in ctx.Sam3_Rel_FolioAvisoLlegada_Proyecto join fe in ctx.Sam3_FolioAvisoEntrada on rel.FolioAvisoLlegadaID equals fe.FolioAvisoLlegadaID join fc in ctx.Sam3_FolioCuantificacion on fe.FolioAvisoEntradaID equals fc.FolioAvisoEntradaID join p in ctx.Sam3_Proyecto on rel.ProyectoID equals p.ProyectoID where fc.FolioCuantificacionID == folioCuantificacion.FolioCuantificacionID select fe.FolioAvisoLlegadaID.Value).AsParallel().Distinct().SingleOrDefault(); if (cuentaProyectos == 1) { bool esDefault = (from rel in ctx.Sam3_Rel_FolioAvisoLlegada_Proyecto join fe in ctx.Sam3_FolioAvisoEntrada on rel.FolioAvisoLlegadaID equals fe.FolioAvisoLlegadaID join fc in ctx.Sam3_FolioCuantificacion on fe.FolioAvisoEntradaID equals fc.FolioAvisoEntradaID join p in ctx.Sam3_Proyecto on rel.ProyectoID equals p.ProyectoID where fc.FolioCuantificacionID == folioCuantificacion.FolioCuantificacionID && (p.Nombre == "Proyecto Default" || p.Nombre == "") select rel).Count() == 1 ? true : false; if (esDefault) { Sam3_Rel_FolioAvisoLlegada_Proyecto nuevaRel = new Sam3_Rel_FolioAvisoLlegada_Proyecto(); nuevaRel.Activo = true; nuevaRel.FechaModificacion = DateTime.Now; nuevaRel.FolioAvisoLlegadaID = folioAvisoLlegada; nuevaRel.ProyectoID = folioCuantificacion.ProyectoID; nuevaRel.UsuarioModificacion = usuario.UsuarioID; ctx.Sam3_Rel_FolioAvisoLlegada_Proyecto.Add(nuevaRel); ctx.SaveChanges(); } else { if (!ctx.Sam3_Rel_FolioAvisoLlegada_Proyecto.Where(x => x.FolioAvisoLlegadaID == folioAvisoLlegada && x.ProyectoID == folioCuantificacion.ProyectoID).Any()) { Sam3_Rel_FolioAvisoLlegada_Proyecto nuevaRel = new Sam3_Rel_FolioAvisoLlegada_Proyecto(); nuevaRel.Activo = true; nuevaRel.FechaModificacion = DateTime.Now; nuevaRel.FolioAvisoLlegadaID = folioAvisoLlegada; nuevaRel.ProyectoID = folioCuantificacion.ProyectoID; nuevaRel.UsuarioModificacion = usuario.UsuarioID; ctx.Sam3_Rel_FolioAvisoLlegada_Proyecto.Add(nuevaRel); ctx.SaveChanges(); } } } else { if (!ctx.Sam3_Rel_FolioAvisoLlegada_Proyecto.Where(x => x.FolioAvisoLlegadaID == folioAvisoLlegada && x.ProyectoID == folioCuantificacion.ProyectoID).Any()) { Sam3_Rel_FolioAvisoLlegada_Proyecto nuevaRel = new Sam3_Rel_FolioAvisoLlegada_Proyecto(); nuevaRel.Activo = true; nuevaRel.FechaModificacion = DateTime.Now; nuevaRel.FolioAvisoLlegadaID = folioAvisoLlegada; nuevaRel.ProyectoID = folioCuantificacion.ProyectoID; nuevaRel.UsuarioModificacion = usuario.UsuarioID; ctx.Sam3_Rel_FolioAvisoLlegada_Proyecto.Add(nuevaRel); ctx.SaveChanges(); } } #endregion if (datosCuantificacion.BultoID > 0) { Sam3_Bulto bulto = ctx.Sam3_Bulto.Where(x => x.BultoID == datosCuantificacion.BultoID && x.Activo).AsParallel().SingleOrDefault(); if (folioCuantificacion.Estatus != "Terminado" && folioCuantificacion.Estatus != "Cerrado") { bulto.Estatus = "En Proceso de Recepción"; } bulto.FolioCuantificacionID = datosCuantificacion.FolioCuantificacionID; bulto.FechaModificacion = DateTime.Now; bulto.UsuarioModificacion = usuario.UsuarioID; bulto.Activo = true; ctx.SaveChanges(); } string nombre = (from p in ctx.Sam3_Proyecto where p.ProyectoID == folioCuantificacion.ProyectoID && p.Activo select p.Nombre).AsParallel().SingleOrDefault(); ctx_tran.Commit(); FolioLlegadaCuantificacion foliollegadacuantificacion = new FolioLlegadaCuantificacion(); foliollegadacuantificacion.FolioCuantificacionID = folioCuantificacion.FolioCuantificacionID; foliollegadacuantificacion.ProyectoID = folioCuantificacion.ProyectoID; foliollegadacuantificacion.Nombre = nombre; string NombreFolioAvisoLlegada = (from pc in ctx.Sam3_Rel_Proyecto_Entidad_Configuracion where pc.Proyecto == folioLlegada.ProyectoNombrado && pc.Entidad == folioLlegada.Entidad select pc.PreFijoFolioAvisoLlegada + "," + pc.CantidadCerosFolioAvisoLlegada.ToString() + "," + folioLlegada.Consecutivo + "," + pc.PostFijoFolioAvisoLlegada.Trim()).FirstOrDefault(); string NombreFolioCuantificacion = (from pc in ctx.Sam3_Rel_Proyecto_Entidad_Configuracion where pc.Rel_Proyecto_Entidad_Configuracion_ID == folioCuantificacion.Rel_Proyecto_Entidad_Configuracion_ID select pc.PreFijoFolioPackingList + "," + pc.CantidadCerosFolioPackingList.ToString() + "," + folioCuantificacion.ConsecutivoConfiguracion.ToString() + "," + pc.PostFijoFolioPackingList).FirstOrDefault(); int FolioAvisoLlegadaID = folioLlegada.FolioAvisoLlegadaID; int ConsecutivoFolioCuanificacion = folioCuantificacion.Consecutivo.Value; int ConsecutivoFolioLlegada = folioLlegada.Consecutivo.Value; foliollegadacuantificacion.FolioConfiguracionCuantificacionID = ""; NombreFolioAvisoLlegada = Conversiones.Instance.FormatearCadenasdeElementos(NombreFolioAvisoLlegada); NombreFolioCuantificacion = Conversiones.Instance.FormatearCadenasdeElementos(NombreFolioCuantificacion); if (activaConfigFolioLlegada && activarFolioConfiguracionCuantificacion) { foliollegadacuantificacion.FolioConfiguracionCuantificacionID = NombreFolioAvisoLlegada + "-" + NombreFolioCuantificacion; } if (activaConfigFolioLlegada && !activarFolioConfiguracionCuantificacion) { foliollegadacuantificacion.FolioConfiguracionCuantificacionID = NombreFolioAvisoLlegada + "-" + ConsecutivoFolioCuanificacion; } if (!activaConfigFolioLlegada && activarFolioConfiguracionCuantificacion) { foliollegadacuantificacion.FolioConfiguracionCuantificacionID = FolioAvisoLlegadaID + "-" + NombreFolioCuantificacion; } if (!activaConfigFolioLlegada && !activarFolioConfiguracionCuantificacion) { foliollegadacuantificacion.FolioConfiguracionCuantificacionID = FolioAvisoLlegadaID + "-" + ConsecutivoFolioCuanificacion; } return(foliollegadacuantificacion); } } } 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> /// Guardar un folio Cuantificacion Nuevo /// </summary> /// <param name="datosCuantificacion">informacion del folio cuantificacion</param> /// <param name="usuario">usuario actual</param> /// <returns>Folio de cuantificacion creados, proyectos</returns> public object CreateGuardarFolio(DatosFolioLlegadaCuantificacion datosCuantificacion, Sam3_Usuario usuario) { string errorInfo = string.Empty; JavaScriptSerializer serializer = new JavaScriptSerializer(); try { using (SamContext ctx = new SamContext()) { using (var ctx_tran = ctx.Database.BeginTransaction()) { errorInfo += "\nFolioEntrada: " + serializer.Serialize(datosCuantificacion); Boolean activarFolioConfiguracion = !string.IsNullOrEmpty(ConfigurationManager.AppSettings["ActivarFolioConfiguracionCuantificacion"]) ? (ConfigurationManager.AppSettings["ActivarFolioConfiguracionCuantificacion"].Equals("1") ? true : false) : false; bool activaConfigFolioLlegada = ConfigurationManager.AppSettings["ActivarFolioConfiguracion"].Equals("1") ? true : false; int avisoEntradaID = ctx.Sam3_FolioAvisoEntrada .Where(x => x.FolioAvisoLlegadaID == datosCuantificacion.FolioAvisollegadaId && x.Activo).Select(x => x.FolioAvisoEntradaID).AsParallel().First(); int?consecutivofc = (from fc in ctx.Sam3_FolioCuantificacion where fc.Activo && fc.FolioAvisoEntradaID == avisoEntradaID select fc.Consecutivo).Max().HasValue ? (from fc in ctx.Sam3_FolioCuantificacion where fc.Activo && fc.FolioAvisoEntradaID == avisoEntradaID select fc.Consecutivo).Max().Value : 0; errorInfo += "\nActiva FolioConfiguracion: " + activarFolioConfiguracion.ToString() + "\nActivaFolioLlegada: " + activaConfigFolioLlegada.ToString() + "\nAvisoLlegadaID: " + avisoEntradaID.ToString() + "\nConsecutivo: " + consecutivofc.ToString(); if (consecutivofc <= 0) { consecutivofc = 1; } else { consecutivofc += 1; } Sam3_FolioCuantificacion folioCuantificacion = new Sam3_FolioCuantificacion(); folioCuantificacion.FolioAvisoEntradaID = avisoEntradaID; folioCuantificacion.ProyectoID = datosCuantificacion.ProyectoID; folioCuantificacion.PackingList = datosCuantificacion.PackingList; folioCuantificacion.TipoUsoID = datosCuantificacion.TipoUso; folioCuantificacion.FechaCreacion = DateTime.Now; folioCuantificacion.Estatus = "En Proceso de Recepción"; folioCuantificacion.FechaModificacion = DateTime.Now; folioCuantificacion.UsuarioModificacion = usuario.UsuarioID; folioCuantificacion.Activo = true; folioCuantificacion.Factura = datosCuantificacion.Factura; if (datosCuantificacion.TipoPackingList != null) { folioCuantificacion.TipoMaterialID = datosCuantificacion.TipoPackingList; } folioCuantificacion.Consecutivo = consecutivofc; ctx.Sam3_FolioCuantificacion.Add(folioCuantificacion); ctx.SaveChanges(); errorInfo += "\nFolio cuantificacion creado"; //Guardar Orden de Compra y Factura Sam3_FolioAvisoEntrada folioEntrada = (from ave in ctx.Sam3_FolioAvisoEntrada where ave.Activo && ave.FolioAvisoLlegadaID == datosCuantificacion.FolioAvisollegadaId select ave).AsParallel().SingleOrDefault(); errorInfo += "\nFolioAvisoEntradaID: " + folioEntrada.FolioAvisoEntradaID.ToString(); folioEntrada.OrdenCompra = datosCuantificacion.OrdenDeCompra; //folioEntrada.Factura = datosCuantificacion.Factura; folioEntrada.FechaModificacion = DateTime.Now; folioEntrada.UsuarioModificacion = usuario.UsuarioID; ctx.SaveChanges(); errorInfo += "\nFolio Entrada actualizado"; #region Proyectos int cuentaProyectos = (from rel in ctx.Sam3_Rel_FolioAvisoLlegada_Proyecto join fe in ctx.Sam3_FolioAvisoEntrada on rel.FolioAvisoLlegadaID equals fe.FolioAvisoLlegadaID join fc in ctx.Sam3_FolioCuantificacion on fe.FolioAvisoEntradaID equals fc.FolioAvisoEntradaID join p in ctx.Sam3_Proyecto on rel.ProyectoID equals p.ProyectoID where fc.FolioCuantificacionID == folioCuantificacion.FolioCuantificacionID select rel.ProyectoID).Count(); int folioAvisoLlegada = (from rel in ctx.Sam3_Rel_FolioAvisoLlegada_Proyecto join fe in ctx.Sam3_FolioAvisoEntrada on rel.FolioAvisoLlegadaID equals fe.FolioAvisoLlegadaID join fc in ctx.Sam3_FolioCuantificacion on fe.FolioAvisoEntradaID equals fc.FolioAvisoEntradaID join p in ctx.Sam3_Proyecto on rel.ProyectoID equals p.ProyectoID where fc.FolioCuantificacionID == folioCuantificacion.FolioCuantificacionID select fe.FolioAvisoLlegadaID.Value).AsParallel().Distinct().SingleOrDefault(); if (cuentaProyectos == 1) { bool esDefault = (from rel in ctx.Sam3_Rel_FolioAvisoLlegada_Proyecto join fe in ctx.Sam3_FolioAvisoEntrada on rel.FolioAvisoLlegadaID equals fe.FolioAvisoLlegadaID join fc in ctx.Sam3_FolioCuantificacion on fe.FolioAvisoEntradaID equals fc.FolioAvisoEntradaID join p in ctx.Sam3_Proyecto on rel.ProyectoID equals p.ProyectoID where fc.FolioCuantificacionID == folioCuantificacion.FolioCuantificacionID && (p.Nombre == "Proyecto Default" || p.Nombre == "") select rel).Count() == 1 ? true : false; if (esDefault) { Sam3_Rel_FolioAvisoLlegada_Proyecto nuevaRel = new Sam3_Rel_FolioAvisoLlegada_Proyecto(); nuevaRel.Activo = true; nuevaRel.FechaModificacion = DateTime.Now; nuevaRel.FolioAvisoLlegadaID = folioAvisoLlegada; nuevaRel.ProyectoID = folioCuantificacion.ProyectoID; nuevaRel.UsuarioModificacion = usuario.UsuarioID; ctx.Sam3_Rel_FolioAvisoLlegada_Proyecto.Add(nuevaRel); ctx.SaveChanges(); errorInfo += "rel folio proyecto creado"; } else { if (!ctx.Sam3_Rel_FolioAvisoLlegada_Proyecto.Where(x => x.FolioAvisoLlegadaID == folioAvisoLlegada && x.ProyectoID == folioCuantificacion.ProyectoID).Any()) { Sam3_Rel_FolioAvisoLlegada_Proyecto nuevaRel = new Sam3_Rel_FolioAvisoLlegada_Proyecto(); nuevaRel.Activo = true; nuevaRel.FechaModificacion = DateTime.Now; nuevaRel.FolioAvisoLlegadaID = folioAvisoLlegada; nuevaRel.ProyectoID = folioCuantificacion.ProyectoID; nuevaRel.UsuarioModificacion = usuario.UsuarioID; ctx.Sam3_Rel_FolioAvisoLlegada_Proyecto.Add(nuevaRel); ctx.SaveChanges(); errorInfo += "rel folio proyecto creado"; } } } else { if (!ctx.Sam3_Rel_FolioAvisoLlegada_Proyecto.Where(x => x.FolioAvisoLlegadaID == folioAvisoLlegada && x.ProyectoID == folioCuantificacion.ProyectoID).Any()) { Sam3_Rel_FolioAvisoLlegada_Proyecto nuevaRel = new Sam3_Rel_FolioAvisoLlegada_Proyecto(); nuevaRel.Activo = true; nuevaRel.FechaModificacion = DateTime.Now; nuevaRel.FolioAvisoLlegadaID = folioAvisoLlegada; nuevaRel.ProyectoID = folioCuantificacion.ProyectoID; nuevaRel.UsuarioModificacion = usuario.UsuarioID; ctx.Sam3_Rel_FolioAvisoLlegada_Proyecto.Add(nuevaRel); ctx.SaveChanges(); errorInfo += "rel folio proyecto creado"; } } #endregion if (datosCuantificacion.BultoID != null && datosCuantificacion.BultoID != 0 && datosCuantificacion.BultoID != -1) { Sam3_Bulto bulto = ctx.Sam3_Bulto.Where(x => x.BultoID == datosCuantificacion.BultoID && x.Activo).AsParallel().SingleOrDefault(); bulto.FolioCuantificacionID = datosCuantificacion.FolioCuantificacionID; bulto.Estatus = "En Proceso de Recepción"; bulto.FechaModificacion = DateTime.Now; bulto.UsuarioModificacion = usuario.UsuarioID; bulto.Activo = true; ctx.Sam3_Bulto.Add(bulto); ctx.SaveChanges(); } string nombre = (from p in ctx.Sam3_Proyecto where p.ProyectoID == folioCuantificacion.ProyectoID && p.Activo select p.Nombre).AsParallel().SingleOrDefault(); FolioLlegadaCuantificacion folioLlegadaCuantificacion = new FolioLlegadaCuantificacion(); folioLlegadaCuantificacion.FolioCuantificacionID = folioCuantificacion.FolioCuantificacionID; folioLlegadaCuantificacion.ProyectoID = folioCuantificacion.ProyectoID; folioLlegadaCuantificacion.Nombre = nombre; Sam3_Rel_Proyecto_Entidad_Configuracion rel_proyecto_entidad_configuracion = ctx.Sam3_Rel_Proyecto_Entidad_Configuracion .Where(x => x.Activo == 1 && x.Proyecto == folioCuantificacion.ProyectoID).FirstOrDefault(); int consecutivofoliopl = 0; if (rel_proyecto_entidad_configuracion != null) { consecutivofoliopl = rel_proyecto_entidad_configuracion.ConsecutivoFolioPackingList; } else { consecutivofoliopl = 1; } Sam3_FolioCuantificacion folioCuantificacionConsecutivo = ctx.Sam3_FolioCuantificacion .Where(x => x.FolioCuantificacionID == folioCuantificacion.FolioCuantificacionID).FirstOrDefault(); folioCuantificacionConsecutivo.ConsecutivoConfiguracion = consecutivofoliopl; folioCuantificacionConsecutivo.Rel_Proyecto_Entidad_Configuracion_ID = rel_proyecto_entidad_configuracion.Rel_Proyecto_Entidad_Configuracion_ID; ctx.SaveChanges(); rel_proyecto_entidad_configuracion.ConsecutivoFolioPackingList = consecutivofoliopl + 1; ctx.SaveChanges(); Sam3_FolioAvisoLlegada foliollegada = (from fa in ctx.Sam3_FolioAvisoLlegada where fa.Activo && fa.FolioAvisoLlegadaID == datosCuantificacion.FolioAvisollegadaId select fa).AsParallel().SingleOrDefault(); string NombreFolioAvisoLlegada = (from pc in ctx.Sam3_Rel_Proyecto_Entidad_Configuracion where pc.Proyecto == foliollegada.ProyectoNombrado && pc.Entidad == foliollegada.Entidad select pc.PreFijoFolioAvisoLlegada + "," + pc.CantidadCerosFolioAvisoLlegada.ToString() + "," + foliollegada.Consecutivo + "," + pc.PostFijoFolioAvisoLlegada.Trim()).FirstOrDefault(); string NombreFolioCuantificacion = (from pc in ctx.Sam3_Rel_Proyecto_Entidad_Configuracion where pc.Rel_Proyecto_Entidad_Configuracion_ID == folioCuantificacion.Rel_Proyecto_Entidad_Configuracion_ID select pc.PreFijoFolioPackingList + "," + pc.CantidadCerosFolioPackingList.ToString() + "," + folioCuantificacion.ConsecutivoConfiguracion.ToString() + "," + pc.PostFijoFolioPackingList).FirstOrDefault(); int FolioAvisoLlegadaID = foliollegada.FolioAvisoLlegadaID; int ConsecutivoFolioCuanificacion = folioCuantificacion.Consecutivo.Value; int ConsecutivoFolioLlegada = foliollegada.Consecutivo.Value; folioLlegadaCuantificacion.FolioConfiguracionCuantificacionID = ""; NombreFolioAvisoLlegada = Conversiones.Instance.FormatearCadenasdeElementos(NombreFolioAvisoLlegada); NombreFolioCuantificacion = Conversiones.Instance.FormatearCadenasdeElementos(NombreFolioCuantificacion); if (activaConfigFolioLlegada && activarFolioConfiguracion) { folioLlegadaCuantificacion.FolioConfiguracionCuantificacionID = NombreFolioAvisoLlegada + "-" + NombreFolioCuantificacion; } if (activaConfigFolioLlegada && !activarFolioConfiguracion) { folioLlegadaCuantificacion.FolioConfiguracionCuantificacionID = NombreFolioAvisoLlegada + "-" + ConsecutivoFolioCuanificacion; } if (!activaConfigFolioLlegada && activarFolioConfiguracion) { folioLlegadaCuantificacion.FolioConfiguracionCuantificacionID = FolioAvisoLlegadaID + "-" + NombreFolioCuantificacion; } if (!activaConfigFolioLlegada && !activarFolioConfiguracion) { folioLlegadaCuantificacion.FolioConfiguracionCuantificacionID = FolioAvisoLlegadaID + "-" + ConsecutivoFolioCuanificacion; } ctx_tran.Commit(); return(folioLlegadaCuantificacion); } } } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); LoggerBd.Instance.EscribirLog("\n" + ex.InnerException); LoggerBd.Instance.EscribirLog("\n" + ex.StackTrace); LoggerBd.Instance.EscribirLog(errorInfo); //-----------------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> /// Obtener los folios cuantificacion /// Combo Folio Packing List en Listado de MAteriales /// </summary> /// <param name="folioLlegadaID"></param> /// <param name="proyectoID"></param> /// <returns></returns> public object obtenerFolioCuantificacionListadoMateriales(string folioLlegadaID, string proyectoID) { try { Boolean activarFolioConfiguracionCuantificacion = !string.IsNullOrEmpty(ConfigurationManager.AppSettings["ActivarFolioConfiguracionCuantificacion"]) ? (ConfigurationManager.AppSettings["ActivarFolioConfiguracionCuantificacion"].Equals("1") ? true : false) : false; bool activaConfigFolioLlegada = ConfigurationManager.AppSettings["ActivarFolioConfiguracion"].Equals("1") ? true : false; using (SamContext ctx = new SamContext()) { List <ListaCombos> folios = (from fc in ctx.Sam3_FolioCuantificacion join ave in ctx.Sam3_FolioAvisoEntrada on fc.FolioAvisoEntradaID equals ave.FolioAvisoEntradaID where fc.Activo && ave.Activo && ave.FolioAvisoLlegadaID.ToString() == folioLlegadaID && fc.ProyectoID.ToString() == proyectoID select new ListaCombos { id = fc.FolioCuantificacionID.ToString(), value = fc.FolioCuantificacionID.ToString() }).AsParallel().ToList(); foreach (ListaCombos item in folios) { int folioCuantificacionID = Convert.ToInt32(item.id); Sam3_FolioCuantificacion FolioCuantificacion = ctx.Sam3_FolioCuantificacion.Where(x => x.FolioCuantificacionID == folioCuantificacionID).FirstOrDefault(); Sam3_FolioAvisoLlegada folioLl = (from fc in ctx.Sam3_FolioCuantificacion join fe in ctx.Sam3_FolioAvisoEntrada on fc.FolioAvisoEntradaID equals fe.FolioAvisoEntradaID join fa in ctx.Sam3_FolioAvisoLlegada on fe.FolioAvisoLlegadaID equals fa.FolioAvisoLlegadaID where fc.Activo && fe.Activo && fa.Activo && fc.FolioCuantificacionID == folioCuantificacionID select fa).AsParallel().FirstOrDefault(); string NombreFolioAvisoLlegada = (from pc in ctx.Sam3_Rel_Proyecto_Entidad_Configuracion where pc.Proyecto == folioLl.ProyectoNombrado && pc.Entidad == folioLl.Entidad select pc.PreFijoFolioAvisoLlegada + "," + pc.CantidadCerosFolioAvisoLlegada.ToString() + "," + folioLl.Consecutivo + "," + pc.PostFijoFolioAvisoLlegada.Trim()).FirstOrDefault(); string NombreFolioCuantificacion = (from pc in ctx.Sam3_Rel_Proyecto_Entidad_Configuracion where pc.Rel_Proyecto_Entidad_Configuracion_ID == FolioCuantificacion.Rel_Proyecto_Entidad_Configuracion_ID select pc.PreFijoFolioPackingList + "," + pc.CantidadCerosFolioPackingList.ToString() + "," + FolioCuantificacion.ConsecutivoConfiguracion.ToString() + "," + pc.PostFijoFolioPackingList).FirstOrDefault(); int FolioAvisoLlegadaID = folioLl.FolioAvisoLlegadaID; int ConsecutivoFolioCuanificacion = FolioCuantificacion.Consecutivo.Value; int ConsecutivoFolioLlegada = folioLl.Consecutivo.Value; NombreFolioAvisoLlegada = Conversiones.Instance.FormatearCadenasdeElementos(NombreFolioAvisoLlegada); NombreFolioCuantificacion = Conversiones.Instance.FormatearCadenasdeElementos(NombreFolioCuantificacion); if (activaConfigFolioLlegada && activarFolioConfiguracionCuantificacion) { item.value = NombreFolioAvisoLlegada + "-" + NombreFolioCuantificacion; } if (activaConfigFolioLlegada && !activarFolioConfiguracionCuantificacion) { item.value = NombreFolioAvisoLlegada + "-" + ConsecutivoFolioCuanificacion; } if (!activaConfigFolioLlegada && activarFolioConfiguracionCuantificacion) { item.value = FolioAvisoLlegadaID + "-" + NombreFolioCuantificacion; } if (!activaConfigFolioLlegada && !activarFolioConfiguracionCuantificacion) { item.value = FolioAvisoLlegadaID + "-" + ConsecutivoFolioCuanificacion; } } return(folios); } } 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 ObtenerInfoPaseSalida(int folioAvisoLlegadaId, Sam3_Usuario usuario) { try { using (SamContext ctx = new SamContext()) { //verificar que el folio de llegada de material ya tenga cargados al menos un packing list firmado bool tienePackingListFirmado = ctx.Sam3_Rel_FolioAvisoLlegada_PaseSalida_Archivo .Where(x => x.FolioAvisoLlegadaID == folioAvisoLlegadaId).AsParallel().Any(); if (tienePackingListFirmado) { //traemos la informacion del folio de aviso de llegada Sam3_FolioAvisoLlegada folioBd = ctx.Sam3_FolioAvisoLlegada.Where(x => x.FolioAvisoLlegadaID == folioAvisoLlegadaId) .AsParallel().SingleOrDefault(); PaseSalidaJson infoPase = new PaseSalidaJson(); infoPase.Fecha = DateTime.Now.ToString("dd/MM/yyyy"); infoPase.FechaFinDescarga = DateTime.Now.ToString("hh:mm:ss tt"); infoPase.FechaInicioDescarga = folioBd.Sam3_FolioAvisoEntrada.Select(x => x.FechainicioDescarga).SingleOrDefault() .Value.ToString("hh:mm:ss tt"); infoPase.FechaLlegada = folioBd.FechaRecepcion.Value.ToString("hh:mm:ss tt"); infoPase.NombreOperador = folioBd.Sam3_Chofer.Nombre; infoPase.Planas = (from r in ctx.Sam3_Rel_FolioAvisoLlegada_Vehiculo join v in ctx.Sam3_Vehiculo on r.VehiculoID equals v.VehiculoID join t in ctx.Sam3_TipoVehiculo on v.TipoVehiculoID equals t.TipoVehiculoID where r.Activo && v.Activo && t.Activo && r.FolioAvisoLlegadaID == folioAvisoLlegadaId && t.Nombre == "Plana" select v.Placas).AsParallel().ToList(); infoPase.NumeroPlanas = infoPase.Planas.Count(); infoPase.PackingListFirmado = (from r in folioBd.Sam3_Rel_FolioAvisoLlegada_PaseSalida_Archivo join t in ctx.Sam3_TipoArchivo on r.TipoArchivoID equals t.TipoArchivoID where r.Activo && t.Activo && t.Nombre == "Packing List Firmado" select r).AsParallel().Any(); infoPase.Proyecto = (from r in folioBd.Sam3_Rel_FolioAvisoLlegada_Proyecto join p in ctx.Sam3_Proyecto on r.ProyectoID equals p.ProyectoID where r.Activo && p.Activo select p.Nombre).AsParallel().FirstOrDefault(); infoPase.Tracto = (from r in ctx.Sam3_Vehiculo where r.Activo && r.VehiculoID == folioBd.VehiculoID select r.Placas).AsParallel().SingleOrDefault(); return(infoPase); } else { TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add("Error"); result.ReturnMessage.Add("El Folio no cuanta con Packing list firmado"); result.ReturnCode = 500; result.ReturnStatus = false; 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); } }