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);
            }
        }
Exemple #3
0
        /// <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);
            }
        }