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); } }
/// <summary> /// Guarda registro de los documentos cargados para permiso de aduana /// </summary> /// <param name="documentos"></param> /// <returns></returns> public object GuardarDocumentoPermisoAduana(List <DocumentoPosteado> documentos) { try { using (SamContext ctx = new SamContext()) { int tipoArchivoID = ctx.Sam3_TipoArchivo.Where(x => x.Nombre == "Permiso Aduana").Select(x => x.TipoArchivoID).SingleOrDefault(); Sam3_PermisoAduana permisoBd; int folioAviso = documentos[0].FolioAvisoLlegadaID.Value; //Actualizamos el permiso de aduana if (ctx.Sam3_PermisoAduana.Where(x => x.FolioAvisoLlegadaID == folioAviso && x.Activo).Any()) { permisoBd = ctx.Sam3_PermisoAduana.Where(x => x.FolioAvisoLlegadaID == folioAviso && x.Activo) .AsParallel().SingleOrDefault(); permisoBd.PermisoAutorizado = true; permisoBd.PermisoTramite = false; permisoBd.NumeroPermiso = documentos[0].NumeroPermisoAduana; permisoBd.Estatus = "Autorizado"; permisoBd.FechaAutorización = DateTime.Now; permisoBd.FechaModificacion = DateTime.Now; permisoBd.UsuarioModificacion = documentos[0].UserId; ctx.SaveChanges(); } else { permisoBd = new Sam3_PermisoAduana(); permisoBd.PermisoAutorizado = true; permisoBd.PermisoTramite = false; permisoBd.NumeroPermiso = documentos[0].NumeroPermisoAduana; permisoBd.Estatus = "Autorizado"; permisoBd.FechaAutorización = DateTime.Now; permisoBd.FechaModificacion = DateTime.Now; permisoBd.UsuarioModificacion = documentos[0].UserId; ctx.Sam3_PermisoAduana.Add(permisoBd); ctx.SaveChanges(); } //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 = documentos[0].UserId; if (ctx.Sam3_Rel_PermisoAduana_Documento.Where(x => x.PermisoAduanaID == permisoBd.PermisoAduanaID && x.Activo).Any()) { foreach (DocumentoPosteado d in documentos) { //Actualizar la informacion de los documentos Sam3_Rel_PermisoAduana_Documento nuevoDoc = ctx.Sam3_Rel_PermisoAduana_Documento.Where(x => x.PermisoAduanaID == permisoBd.PermisoAduanaID && x.Activo).AsParallel().SingleOrDefault(); nuevoDoc.Activo = true; nuevoDoc.ContentType = d.ContentType; nuevoDoc.DocGuid = d.DocGuid; nuevoDoc.DocumentoID = 0; nuevoDoc.Extencion = d.Extencion; nuevoDoc.FechaModificacion = DateTime.Now; nuevoDoc.Nombre = d.FileName; nuevoDoc.PermisoAduanaID = permisoBd.PermisoAduanaID; nuevoDoc.TipoArchivoID = tipoArchivoID; nuevoDoc.Url = d.Path; nuevoDoc.UsuarioModificacion = d.UserId; //ctx.Sam3_Rel_PermisoAduana_Documento.Add(nuevoDoc); } } else { foreach (DocumentoPosteado d in documentos) { //Guardamos la informacion de los documentos Sam3_Rel_PermisoAduana_Documento nuevoDoc = new Sam3_Rel_PermisoAduana_Documento(); nuevoDoc.Activo = true; nuevoDoc.ContentType = d.ContentType; nuevoDoc.DocGuid = d.DocGuid; nuevoDoc.DocumentoID = 0; nuevoDoc.Extencion = d.Extencion; nuevoDoc.FechaModificacion = DateTime.Now; nuevoDoc.Nombre = d.FileName; nuevoDoc.PermisoAduanaID = permisoBd.PermisoAduanaID; nuevoDoc.TipoArchivoID = tipoArchivoID; nuevoDoc.Url = d.Path; nuevoDoc.UsuarioModificacion = d.UserId; ctx.Sam3_Rel_PermisoAduana_Documento.Add(nuevoDoc); } } ctx.SaveChanges(); return(true); } } catch (Exception ex) { //-----------------Agregar mensaje al Log ----------------------------------------------- LoggerBd.Instance.EscribirLog(ex); //-----------------Agregar mensaje al Log ----------------------------------------------- return(false); } }
/// <summary> /// Insertar permiso de aduana en base de datos, si ya existe un permiso con ese folio de aviso de llegada, se hace update, sino se inserta /// </summary> /// <param name="folio">Folio seleccionado por el usuario</param> /// <param name="usuario">Usuario Actual</param> /// <returns></returns> public TransactionalInformation InsertarPermisoADuana(int folio, Sam3_Usuario usuario) { try { using (SamContext ctx = new SamContext()) { Sam3_PermisoAduana permisoAduana = new Sam3_PermisoAduana(); var folioAvisoLlegada = (from pa in ctx.Sam3_PermisoAduana where (pa.FolioAvisoLlegadaID == folio) select pa).FirstOrDefault(); if (folioAvisoLlegada == null) { permisoAduana.FolioAvisoLlegadaID = folio; permisoAduana.Estatus = "Creado"; permisoAduana.Activo = true; permisoAduana.UsuarioModificacion = usuario.UsuarioID; permisoAduana.FechaModificacion = DateTime.Now; permisoAduana.PermisoAutorizado = false; permisoAduana.PermisoTramite = true; permisoAduana.NumeroPermiso = null; permisoAduana.FechaGeneracion = DateTime.Now; permisoAduana.FechaAutorización = null; ctx.Sam3_PermisoAduana.Add(permisoAduana); ctx.SaveChanges(); } else { permisoAduana = (from pa in ctx.Sam3_PermisoAduana where (pa.FolioAvisoLlegadaID == folio) select pa).AsParallel().First(); permisoAduana.FolioAvisoLlegadaID = folio; permisoAduana.Estatus = "Creado"; permisoAduana.Activo = true; permisoAduana.UsuarioModificacion = usuario.UsuarioID; permisoAduana.FechaModificacion = DateTime.Now; permisoAduana.PermisoAutorizado = false; permisoAduana.PermisoTramite = true; permisoAduana.NumeroPermiso = null; permisoAduana.FechaGeneracion = DateTime.Now; permisoAduana.FechaAutorización = null; ctx.SaveChanges(); } TransactionalInformation result = new TransactionalInformation(); result.ReturnMessage.Add("Ok"); result.ReturnMessage.Add(permisoAduana.PermisoAduanaID.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); } }