コード例 #1
0
 /// <summary>
 /// Modificar un log de solicitud. En el cuerpo del mensaje se envía en el formato adecuado el objeto con los datos modificados
 /// </summary>
 /// <param name="id"> Identificador único del log </param>
 /// <param name="solog">Log de solicitud con los valores que se desean en sus atributos</param>
 /// <param name="tk"> Tique de autorización (Ver 'Login')</param>
 /// <returns></returns>
 public virtual SolicitudLog Put(int id, SolicitudLog solog, string tk)
 {
     using (PortalProContext ctx = new PortalProContext())
     {
         // comprobar el tique
         if (!CntWebApiSeguridad.CheckTicket(tk, ctx))
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Se necesita tique de autorización (SolicitudLogs)"));
         }
         // comprobar los formatos
         if (solog == null || id != solog.SolicitudLogId)
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         // primero buscamos si un solog con ese id existe
         SolicitudLog slg = (from u in ctx.SolicitudLogs
                             where u.SolicitudLogId == id
                             select u).FirstOrDefault<SolicitudLog>();
         // existe?
         if (slg == null)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay un solog con el id proporcionado (SolicitudLogs)"));
         }
         //
         int usuarioId = 0;
         int solicitudProveedorId = 0;
         int solStatusFinId = 0;
         int solStatusInicioId = 0;
         // Controlamos las propiedades que son en realidad objetos.
         if (solog.Usuario != null)
         {
             usuarioId = solog.Usuario.UsuarioId;
             solog.Usuario = null;
         }
         if (solog.SolicitudProveedor != null)
         {
             solicitudProveedorId = solog.SolicitudProveedor.SolicitudProveedorId;
             solog.SolicitudProveedor = null;
         }
         if (solog.SolicitudStatusInicial != null)
         {
             solStatusInicioId = solog.SolicitudStatusInicial.SolicitudStatusId;
             solog.SolicitudStatusInicial = null;
         }
         if (solog.SolicitudStatusFinal != null)
         {
             solStatusFinId = solog.SolicitudStatusFinal.SolicitudStatusId;
             solog.SolicitudStatusFinal = null;
         }
         // modificar el objeto
         ctx.AttachCopy<SolicitudLog>(solog);
         // volvemos a leer el objecto para que lo maneje este contexto.
         solog = (from s in ctx.SolicitudLogs
                  where s.SolicitudLogId == id
                  select s).FirstOrDefault<SolicitudLog>();
         if (usuarioId != 0)
         {
             solog.Usuario = (from u in ctx.Usuarios
                              where u.UsuarioId == usuarioId
                              select u).FirstOrDefault<Usuario>();
         }
         if (solicitudProveedorId != 0)
         {
             solog.SolicitudProveedor = (from s in ctx.SolicitudProveedors
                                         select s).FirstOrDefault<SolicitudProveedor>();
         }
         if (solStatusInicioId != 0)
         {
             solog.SolicitudStatusInicial = (from s in ctx.SolicitudStatus
                                             select s).FirstOrDefault<SolicitudStatus>();
         }
         if (solStatusFinId != 0)
         {
             solog.SolicitudStatusFinal = (from s in ctx.SolicitudStatus
                                           select s).FirstOrDefault<SolicitudStatus>();
         }
         ctx.SaveChanges();
         return ctx.CreateDetachedCopy<SolicitudLog>(solog, x => x.Usuario, x => x.SolicitudProveedor, x => x.SolicitudStatusInicial, x => x.SolicitudStatusFinal);
     }
 }
コード例 #2
0
 /// <summary>
 /// Modificar un usuario ligado a un proveedor. En el cuerpo del mensaje se envía en el formato adecuado el objeto con los datos modificados
 /// </summary>
 /// <param name="id"> Identificador único del usuario </param>
 /// <param name="usuarioProveedor">Datos del usario ligado a proveedor</param>
 /// <param name="tk"> Tique de autorización (Ver 'Login')</param>
 /// <returns></returns>
 public virtual UsuarioProveedor Put(int id, UsuarioProveedor usuarioProveedor, string tk)
 {
     using (PortalProContext ctx = new PortalProContext())
     {
         // comprobar el tique
         if (!CntWebApiSeguridad.CheckTicket(tk, ctx))
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Se necesita tique de autorización (UsuarioProveedor)"));
         }
         // comprobar los formatos
         if (usuarioProveedor == null || id != usuarioProveedor.UsuarioProveedorId)
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         // primero buscamos si un usuario con ese id existe
         UsuarioProveedor usup = (from up in ctx.UsuarioProveedors
                        where up.UsuarioProveedorId == id
                        select up).FirstOrDefault<UsuarioProveedor>();
         // existe?
         if (usup == null)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay un usuario con el id proporcionado (UsuarioProveedor)"));
         }
         // controlar la contraseña.
         if (usuarioProveedor.Password != null && usuarioProveedor.Password != "" && usuarioProveedor.Password != usup.Password)
         {
             // se guarda la contraseña encriptada
             usuarioProveedor.Password = CntWebApiSeguridad.GetHashCode(usuarioProveedor.Password);
         }
         int proveedorId = 0;
         // Controlamos las propiedades que son en realidad objetos.
         if (usuarioProveedor.Proveedor != null)
         {
             proveedorId = usuarioProveedor.Proveedor.ProveedorId;
             usuarioProveedor.Proveedor = null;
         }
         // modificar el objeto
         ctx.AttachCopy<UsuarioProveedor>(usuarioProveedor);
         // volvemos a leer el objecto para que lo maneje este contexto.
         usuarioProveedor = (from up in ctx.UsuarioProveedors
                    where up.UsuarioProveedorId == id
                    select up).FirstOrDefault<UsuarioProveedor>();
         if (proveedorId != 0)
         {
             usuarioProveedor.Proveedor = (from p in ctx.Proveedors
                                     where p.ProveedorId == proveedorId
                                     select p).FirstOrDefault<Proveedor>();
         }
         ctx.SaveChanges();
         return ctx.CreateDetachedCopy<UsuarioProveedor>(usuarioProveedor, x => x.Proveedor );
     }
 }
コード例 #3
0
 /// <summary>
 /// Modificar un proveedor. En el cuerpo del mensaje se envía en el formato adecuado el objeto con los datos modificados
 /// </summary>
 /// <param name="id"> Identificador único del grupo </param>
 /// <param name="proveedor">Grupo de proveedor con los valores que se desean en sus atributos</param>
 /// <param name="tk"> Tique de autorización (Ver 'Login')</param>
 /// <returns></returns>
 public virtual Proveedor Put(int id, Proveedor proveedor, string tk)
 {
     using (PortalProContext ctx = new PortalProContext())
     {
         // comprobar el tique
         if (!CntWebApiSeguridad.CheckTicket(tk, ctx))
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Se necesita tique de autorización (Proveedores)"));
         }
         // comprobar los formatos
         if (proveedor == null || id != proveedor.ProveedorId)
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         // primero buscamos si un proveedor con ese id existe
         Proveedor pro = (from p in ctx.Proveedors
                        where p.ProveedorId == id
                        select p).FirstOrDefault<Proveedor>();
         // existe?
         if (pro == null)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay un proveedor con el id proporcionado (Proveedores)"));
         }
         int grupoProveedorId = 0;
         // Controlamos las propiedades que son en realidad objetos.
         if (proveedor.GrupoProveedor != null)
         {
             grupoProveedorId = proveedor.GrupoProveedor.GrupoProveedorId;
             proveedor.GrupoProveedor = null;
         }
         // modificar el objeto
         ctx.AttachCopy<Proveedor>(proveedor);
         // volvemos a leer el objecto para que lo maneje este contexto.
         proveedor = (from u in ctx.Proveedors
                    where u.ProveedorId == id
                    select u).FirstOrDefault<Proveedor>();
         if (grupoProveedorId != 0)
         {
             proveedor.GrupoProveedor = (from gp in ctx.GrupoProveedors
                                     where gp.GrupoProveedorId == grupoProveedorId
                                     select gp).FirstOrDefault<GrupoProveedor>();
         }
         ctx.SaveChanges();
         return ctx.CreateDetachedCopy<Proveedor>(proveedor, x => x.GrupoProveedor);
     }
 }
コード例 #4
0
 /// <summary>
 /// Modificar una cabecera de factura. En el cuerpo del mensaje se envía en el formato adecuado el objeto con los datos modificados
 /// </summary>
 /// <param name="id"> Identificador único de la cabecera de factura </param>
 /// <param name="factura">Cabecera de factura los valores que se desean en sus atributos</param>
 /// <param name="tk"> Tique de autorización (Ver 'Login')</param>
 /// <returns></returns>
 public virtual CabFactura Put(int id, CabFactura factura, string tk)
 {
     using (PortalProContext ctx = new PortalProContext())
     {
         // comprobar el tique
         if (!CntWebApiSeguridad.CheckTicket(tk, ctx))
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Se necesita tique de autorización (CabFactura)"));
         }
         // comprobar los formatos
         if (factura == null || id != factura.CabFacturaId)
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         // primero buscamos si un factura con ese id existe
         CabFactura cfac = (from f in ctx.CabFacturas
                            where f.CabFacturaId == id
                            select f).FirstOrDefault<CabFactura>();
         // existe?
         if (cfac == null)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay una factura con el id proporcionado (CabFactura)"));
         }
         if (factura.Estado == "PROCESADA")
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Las facturas procesadas no pueden ser modificadas (CabFactura)"));
         }
         // comprobamos que no hay una factura para el mismo proveedor en ese año y con
         // el mismo número de factura
         CabFactura fc = PortalProWebUtility.YaExisteUnaFacturaComoEsta(factura, ctx);
         if (fc != null)
         {
             string m = String.Format("Ya hay una factura del proveedor para este año {0:yyyy} con el mismo número {1}", fc.FechaEmision, fc.NumFactura);
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, m));
         }
         // Controlamos las propiedades que son en realidad objetos.
         int proveedorId = 0;
         if (factura.Proveedor != null)
         {
             proveedorId = factura.Proveedor.ProveedorId;
             factura.Proveedor = null;
         }
         int documentoPdfId = 0;
         if (factura.DocumentoPdf != null)
         {
             documentoPdfId = factura.DocumentoPdf.DocumentoId;
             factura.DocumentoPdf = null;
         }
         int documentoXmlId = 0;
         if (factura.DocumentoXml != null)
         {
             documentoXmlId = factura.DocumentoXml.DocumentoId;
             factura.DocumentoXml = null;
         }
         int empresaId = 0;
         if (factura.Empresa != null)
         {
             empresaId = factura.Empresa.EmpresaId;
             factura.Empresa = null;
         }
         int responsableId = 0;
         if (factura.Responsable != null)
         {
             responsableId = factura.Responsable.ResponsableId;
             factura.Responsable = null;
         }
         // modificar el objeto
         if (factura.Estado == null)
             factura.Estado = "ACEPTADA";
         ctx.AttachCopy<CabFactura>(factura);
         // volvemos a leer el objecto para que lo maneje este contexto.
         factura = (from f in ctx.CabFacturas
                    where f.CabFacturaId == id
                    select f).FirstOrDefault<CabFactura>();
         if (proveedorId != 0)
         {
             factura.Proveedor = (from p in ctx.Proveedors
                                  where p.ProveedorId == proveedorId
                                  select p).FirstOrDefault<Proveedor>();
         }
         if (documentoPdfId != 0)
         {
             factura.DocumentoPdf = (from d in ctx.Documentos
                                     where d.DocumentoId == documentoPdfId
                                     select d).FirstOrDefault<Documento>();
         }
         if (documentoXmlId != 0)
         {
             factura.DocumentoXml = (from d in ctx.Documentos
                                     where d.DocumentoId == documentoXmlId
                                     select d).FirstOrDefault<Documento>();
         }
         if (empresaId != 0)
         {
             factura.Empresa = (from e in ctx.Empresas
                                where e.EmpresaId == empresaId
                                select e).FirstOrDefault<Empresa>();
         }
         if (responsableId != 0)
         {
             factura.Responsable = (from r in ctx.Responsables
                                    where r.ResponsableId == responsableId
                                    select r).FirstOrDefault<Responsable>();
         }
         factura.Historial += String.Format("{0:dd/MM/yyyy hh:mm:ss} La factura {1} con Total {2:0.0} € has sido modificada con estado {3} <br/>",
             DateTime.Now, factura.NumFactura, factura.TotalFactura, factura.Estado);
         factura.Generada = false;
         ctx.SaveChanges();
         return ctx.CreateDetachedCopy<CabFactura>(factura, x => x.Proveedor, x => x.DocumentoPdf, x => x.DocumentoXml);
     }
 }
コード例 #5
0
 /// <summary>
 /// Modificar una solicitud. En el cuerpo del mensaje se envía en el formato adecuado el objeto con los datos modificados
 /// </summary>
 /// <param name="id"> Identificador único de la solicitud </param>
 /// <param name="solProveedor">Solicitud de proveedor con los valores que se desean en sus atributos</param>
 /// <param name="tk"> Tique de autorización (Ver 'Login'). Caso "solicitud"</param>
 /// <returns></returns>
 public virtual SolicitudProveedor Put(int id, SolicitudProveedor solProveedor, string tk)
 {
     using (PortalProContext ctx = new PortalProContext())
     {
         // comprobar el tique
         // se permite si el valor es "solicitud" siempre
         if (!CntWebApiSeguridad.CheckTicket(tk, ctx) && tk != "solicitud")
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Se necesita tique de autorización (Solicitudes proveedores)"));
         }
         // comprobar los formatos
         if (solProveedor == null || id != solProveedor.SolicitudProveedorId)
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         // primero buscamos si una solicitud con ese id existe
         SolicitudProveedor solPro = (from sp in ctx.SolicitudProveedors
                                      where sp.SolicitudProveedorId == id
                                      select sp).FirstOrDefault<SolicitudProveedor>();
         // existe?
         if (solPro == null)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay una solicitud con el id proporcionado (Solicitudes proveedores)"));
         }
         int grupoProveedorId = 0;
         int solicitudStatusId = 0;
         // Controlamos las propiedades que son en realidad objetos.
         if (solProveedor.GrupoProveedor != null)
         {
             grupoProveedorId = solProveedor.GrupoProveedor.GrupoProveedorId;
             solProveedor.GrupoProveedor = null;
         }
         // modificar el objeto
         ctx.AttachCopy<SolicitudProveedor>(solProveedor);
         // volvemos a leer el objecto para que lo maneje este contexto.
         solProveedor = (from sp in ctx.SolicitudProveedors
                         where sp.SolicitudProveedorId == id
                         select sp).FirstOrDefault<SolicitudProveedor>();
         if (grupoProveedorId != 0)
         {
             solProveedor.GrupoProveedor = (from gp in ctx.GrupoProveedors
                                            where gp.GrupoProveedorId == grupoProveedorId
                                            select gp).FirstOrDefault<GrupoProveedor>();
         }
         if (solicitudStatusId != 0)
         {
             solProveedor.SolicitudStatus = (from ss in ctx.SolicitudStatus
                                             where ss.SolicitudStatusId == solicitudStatusId
                                             select ss).FirstOrDefault<SolicitudStatus>();
         }
         ctx.SaveChanges();
         return ctx.CreateDetachedCopy<SolicitudProveedor>(solProveedor, x => x.GrupoProveedor, x => x.SolicitudStatus);
     }
 }
コード例 #6
0
 /// <summary>
 /// Modificar una linea de factura. En el cuerpo del mensaje se envía en el formato adecuado el objeto con los datos modificados
 /// </summary>
 /// <param name="id"> Identificador único de la linea de fcatura</param>
 /// <param name="linea">Linea de fcatura con los valores que se desean en sus atributos</param>
 /// <param name="tk"> Tique de autorización (Ver 'Login')</param>
 /// <returns></returns>
 public virtual LinFactura Put(int id, LinFactura linea, string tk)
 {
     using (PortalProContext ctx = new PortalProContext())
     {
         // comprobar el tique
         if (!CntWebApiSeguridad.CheckTicket(tk, ctx))
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Se necesita tique de autorización (LinFactura)"));
         }
         // comprobar los formatos
         if (linea == null || id != linea.LinFacturaId)
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         // primero buscamos si uan linea con ese id existe
         LinFactura lin = (from l in ctx.LinFacturas
                           where l.LinFacturaId == id
                           select l).FirstOrDefault<LinFactura>();
         // existe?
         if (lin == null)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay una linea con el id proporcionado (LinFactura)"));
         }
         int cabFacturaId = 0;
         // Controlamos las propiedades que son en realidad objetos.
         if (lin.CabFactura != null)
         {
             cabFacturaId = lin.CabFactura.CabFacturaId;
             linea.CabFactura = null;
         }
         // modificar el objeto
         ctx.AttachCopy<LinFactura>(linea);
         // volvemos a leer el objecto para que lo maneje este contexto.
         linea = (from l in ctx.LinFacturas
                  where l.LinFacturaId == id
                  select l).FirstOrDefault<LinFactura>();
         if (cabFacturaId != 0)
         {
             linea.CabFactura = (from f in ctx.CabFacturas
                                 where f.CabFacturaId == cabFacturaId
                                 select f).FirstOrDefault<CabFactura>();
         }
         ctx.SaveChanges();
         return ctx.CreateDetachedCopy<LinFactura>(linea, x => x.CabFactura);
     }
 }
コード例 #7
0
 /// <summary>
 /// Modificar un Parametro de proveedor. En el cuerpo del mensaje se envía en el formato adecuado el objeto con los datos modificados
 /// </summary>
 /// <param name="id"> Identificador único de la Parametro </param>
 /// <param name="parametro">Grupo de poveedor con los valores que se desean en sus atributos</param>
 /// <param name="tk"> Tique de autorización (Ver 'Login')</param>
 /// <returns></returns>
 public virtual Parametro Put(int id, Parametro parametro, string tk)
 {
     using (PortalProContext ctx = new PortalProContext())
     {
         // comprobar el tique
         if (!CntWebApiSeguridad.CheckTicket(tk, ctx))
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Se necesita tique de autorización (Parametros)"));
         }
         // comprobar los formatos
         if (parametro == null || id != parametro.ParametroId)
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         // primero buscamos si un Parametro con ese id existe
         Parametro pl = (from p in ctx.Parametros1
                              where p.ParametroId == id
                              select p).FirstOrDefault<Parametro>();
         // existe?
         if (pl == null)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay un Parametro con el id proporcionado (Parametros)"));
         }
         // modificar el objeto
         ctx.AttachCopy<Parametro>(parametro);
         ctx.SaveChanges();
         return parametro;
     }
 }
コード例 #8
0
ファイル: Responsables.cs プロジェクト: rafaelgr/portalpro
 /// <summary>
 /// Modificar una Responsable. En el cuerpo del mensaje se envía en el formato adecuado el objeto con los datos modificados
 /// </summary>
 /// <param name="id"> Identificador único de la Responsable </param>
 /// <param name="responsable">Grupo de usuario con los valores que se desean en sus atributos</param>
 /// <param name="tk"> Tique de autorización (Ver 'Login')</param>
 /// <returns></returns>
 public virtual Responsable Put(int id, Responsable responsable, string tk)
 {
     using (PortalProContext ctx = new PortalProContext())
     {
         // comprobar el tique
         if (!CntWebApiSeguridad.CheckTicket(tk, ctx))
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Se necesita tique de autorización (Responsables)"));
         }
         // comprobar los formatos
         if (responsable == null || id != responsable.ResponsableId)
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         // primero buscamos si un grupo con ese id existe
         Responsable re = (from g in ctx.Responsables
                            where g.ResponsableId == id
                            select g).FirstOrDefault<Responsable>();
         // existe?
         if (re == null)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay un grupo con el id proporcionado (Responsables)"));
         }
         int usuarioId = 0;
         if (responsable.Usuario != null)
         {
             usuarioId = responsable.Usuario.UsuarioId;
             responsable.Usuario = null;
         }
         // hay que volver a leer el objeto para que lo maneje este contexto.
         responsable = (from r in ctx.Responsables
                        where r.ResponsableId == id
                        select r).FirstOrDefault<Responsable>();
         // modificar el objeto
         ctx.AttachCopy<Responsable>(responsable);
         if (usuarioId != 0)
         {
             responsable.Usuario = (from u in ctx.Usuarios
                                    where u.UsuarioId == usuarioId
                                    select u).FirstOrDefault<Usuario>();
         }
         ctx.SaveChanges();
         return ctx.CreateDetachedCopy<Responsable>(responsable, x => x.Usuario);
     }
 }
コード例 #9
0
 /// <summary>
 /// Modificar una cabecera de pedido. En el cuerpo del mensaje se envía en el formato adecuado el objeto con los datos modificados
 /// </summary>
 /// <param name="id"> Identificador único de la cabecera de factura </param>
 /// <param name="pedido">Cabecera de pedido los valores que se desean en sus atributos</param>
 /// <param name="tk"> Tique de autorización (Ver 'Login')</param>
 /// <returns></returns>
 public virtual Pedido Put(int id, Pedido pedido, string tk)
 {
     using (PortalProContext ctx = new PortalProContext())
     {
         // comprobar el tique
         if (!CntWebApiSeguridad.CheckTicket(tk, ctx))
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Se necesita tique de autorización (Pedido)"));
         }
         // comprobar los formatos
         if (pedido == null || id != pedido.PedidoId)
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         // primero buscamos si un factura con ese id existe
         Pedido ped = (from p in ctx.Pedidos
                       where p.PedidoId == id
                       select p).FirstOrDefault<Pedido>();
         // existe?
         if (ped == null)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay un pedido con el id proporcionado (Pedido)"));
         }
         // Controlamos las propiedades que son en realidad objetos.
         int proveedorId = 0;
         if (pedido.Proveedor != null)
         {
             proveedorId = pedido.Proveedor.ProveedorId;
             pedido.Proveedor = null;
         }
         int responsableId = 0;
         if (pedido.Responsable != null)
         {
             responsableId = pedido.Responsable.ResponsableId;
             pedido.Responsable = null;
         }
         int empresaId = 0;
         if (pedido.Empresa != null)
         {
             empresaId = pedido.Empresa.EmpresaId;
             pedido.Empresa = null;
         }
         int documentoXmlId = 0;
         if (pedido.DocumentoXml != null)
         {
             documentoXmlId = pedido.DocumentoXml.DocumentoId;
             pedido.DocumentoXml = null;
         }
         int documentoPdfId = 0;
         if (pedido.DocumentoPdf != null)
         {
             documentoPdfId = pedido.DocumentoPdf.DocumentoId;
             pedido.DocumentoPdf = null;
         }
         // modificar el objeto
         ctx.AttachCopy<Pedido>(pedido);
         // volvemos a leer el objecto para que lo maneje este contexto.
         pedido = (from p in ctx.Pedidos
                   where p.PedidoId == id
                   select p).FirstOrDefault<Pedido>();
         if (proveedorId != 0)
         {
             pedido.Proveedor = (from p in ctx.Proveedors
                                 where p.ProveedorId == proveedorId
                                 select p).FirstOrDefault<Proveedor>();
         }
         if (empresaId != 0)
         {
             pedido.Empresa = (from p in ctx.Empresas
                               where p.EmpresaId == empresaId
                               select p).FirstOrDefault<Empresa>();
         }
         if (responsableId != 0)
         {
             pedido.Responsable = (from p in ctx.Responsables
                                   where p.ResponsableId == responsableId
                                   select p).FirstOrDefault<Responsable>();
         }
         if (documentoXmlId != 0)
         {
             pedido.DocumentoXml = (from d in ctx.Documentos
                                    where d.DocumentoId == documentoPdfId
                                    select d).FirstOrDefault<Documento>();
         }
         if (documentoPdfId != 0)
         {
             pedido.DocumentoPdf = (from d in ctx.Documentos
                                    where d.DocumentoId == documentoPdfId
                                    select d).FirstOrDefault<Documento>();
         }
         ctx.SaveChanges();
         return ctx.CreateDetachedCopy<Pedido>(pedido, x => x.Proveedor, x => x.DocumentoPdf, x => x.Empresa);
     }
 }
コード例 #10
0
        public virtual Pedido Put(int id, Pedido pedido, string userId, string tk)
        {
            using (PortalProContext ctx = new PortalProContext())
            {
                // comprobar el tique
                if (!CntWebApiSeguridad.CheckTicket(tk, ctx))
                {
                    throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Se necesita tique de autorización (Pedido)"));
                }
                // comprobar los formatos
                if (pedido == null || id != pedido.PedidoId)
                {
                    throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
                }
                // primero buscamos si un factura con ese id existe
                Pedido ped = (from p in ctx.Pedidos
                              where p.PedidoId == id
                              select p).FirstOrDefault<Pedido>();
                // existe?
                if (ped == null)
                {
                    throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay una factura con el id proporcionado (Pedido)"));
                }
                // La aplicación ahora depende del comienzo del usuario
                string application = "PortalPro";
                switch (userId.Substring(0, 1))
                {
                    case "U":
                        application = "PortalPro2";
                        break;
                    case "G":
                        application = "PortalPro";
                        break;
                }
                // En la actualización a lo mejor no han cargado ningún archivo
                string fPdf = PortalProWebUtility.BuscarArchivoCargado(application, userId, "Factura", "PDF");
                // Controlamos las propiedades que son en realidad objetos.
                int proveedorId = 0;
                if (pedido.Proveedor != null)
                {
                    proveedorId = pedido.Proveedor.ProveedorId;
                    pedido.Proveedor = null;
                }
                int responsableId = 0;
                if (pedido.Responsable != null)
                {
                    responsableId = pedido.Responsable.ResponsableId;
                    pedido.Responsable = null;
                }
                int empresaId = 0;
                if (pedido.Empresa != null)
                {
                    empresaId = pedido.Empresa.EmpresaId;
                    pedido.Empresa = null;
                }
                int documentoXmlId = 0;
                if (pedido.DocumentoXml != null)
                {
                    documentoXmlId = pedido.DocumentoXml.DocumentoId;
                    pedido.DocumentoXml = null;
                }

                int documentoPdfId = 0;
                if (pedido.DocumentoPdf != null)
                {
                    documentoPdfId = pedido.DocumentoPdf.DocumentoId;
                    pedido.DocumentoPdf = null;
                }
                // modificar el objeto
                ctx.AttachCopy<Pedido>(pedido);
                // volvemos a leer el objecto para que lo maneje este contexto.
                pedido = (from p in ctx.Pedidos
                          where p.PedidoId == id
                          select p).FirstOrDefault<Pedido>();
                if (proveedorId != 0)
                {
                    pedido.Proveedor = (from p in ctx.Proveedors
                                        where p.ProveedorId == proveedorId
                                        select p).FirstOrDefault<Proveedor>();
                }
                if (empresaId != 0)
                {
                    pedido.Empresa = (from p in ctx.Empresas
                                      where p.EmpresaId == empresaId
                                      select p).FirstOrDefault<Empresa>();
                }
                if (responsableId != 0)
                {
                    pedido.Responsable = (from p in ctx.Responsables
                                          where p.ResponsableId == responsableId
                                          select p).FirstOrDefault<Responsable>();
                }
                if (documentoXmlId != 0)
                {
                    pedido.DocumentoXml = (from d in ctx.Documentos
                                           where d.DocumentoId == documentoPdfId
                                           select d).FirstOrDefault<Documento>();
                }
                if (documentoPdfId != 0)
                {
                    pedido.DocumentoPdf = (from d in ctx.Documentos
                                           where d.DocumentoId == documentoPdfId
                                           select d).FirstOrDefault<Documento>();
                }
                Documento doc = null; // para cargar temporalmente documentos
                // si se cumplen estas condiciones es que han cambiado el archivo asociado.
                if (fPdf != "")
                {
                    doc = pedido.DocumentoPdf;
                    pedido.DocumentoPdf = PortalProWebUtility.CrearDocumentoDesdeArchivoCargado(application, fPdf, ctx);
                    PortalProWebUtility.EliminarDocumento(doc, ctx);
                }
                ctx.SaveChanges();
                return ctx.CreateDetachedCopy<Pedido>(pedido, x => x.Proveedor, x => x.DocumentoPdf, x => x.Empresa);
            }
        }
コード例 #11
0
 /// <summary>
 /// Modificar un grupo de usuario. En el cuerpo del mensaje se envía en el formato adecuado el objeto con los datos modificados
 /// </summary>
 /// <param name="id"> Identificador único del grupo </param>
 /// <param name="grupoUsuario">Grupo de usuario con los valores que se desean en sus atributos</param>
 /// <param name="tk"> Tique de autorización (Ver 'Login')</param>
 /// <returns></returns>
 public virtual GrupoUsuario Put(int id, GrupoUsuario grupoUsuario, string tk)
 {
     using (PortalProContext ctx = new PortalProContext())
     {
         // comprobar el tique
         if (!CntWebApiSeguridad.CheckTicket(tk, ctx))
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Se necesita tique de autorización (Grupo de usuarios)"));
         }
         // comprobar los formatos
         if (grupoUsuario == null || id != grupoUsuario.GrupoUsuarioId)
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         // primero buscamos si un grupo con ese id existe
         GrupoUsuario gu = (from g in ctx.GrupoUsuarios
                            where g.GrupoUsuarioId == id
                            select g).FirstOrDefault<GrupoUsuario>();
         // existe?
         if (gu == null)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay un grupo con el id proporcionado (Grupo de usuarios)"));
         }
         // modificar el objeto
         ctx.AttachCopy<GrupoUsuario>(grupoUsuario);
         ctx.SaveChanges();
         return grupoUsuario;
     }
 }
コード例 #12
0
        public virtual CabFactura Put(int id, CabFactura factura, string userId, string tk, string gen)
        {
            using (PortalProContext ctx = new PortalProContext())
            {
                // comprobar el tique
                if (!CntWebApiSeguridad.CheckTicket(tk, ctx))
                {
                    throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Se necesita tique de autorización (CabFactura)"));
                }
                // comprobar los formatos
                if (factura == null || id != factura.CabFacturaId)
                {
                    throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
                }
                // primero buscamos si un factura con ese id existe
                CabFactura cfac = (from f in ctx.CabFacturas
                                   where f.CabFacturaId == id
                                   select f).FirstOrDefault<CabFactura>();
                // existe?
                if (cfac == null)
                {
                    throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay una factura con el id proporcionado (CabFactura)"));
                }
                if (factura.Estado == "PROCESADA")
                {
                    throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Las facturas procesadas no pueden ser modificadas (CabFactura)"));
                }
                // comprobamos que no hay una factura para el mismo proveedor en ese año y con
                // el mismo número de factura
                CabFactura fc = PortalProWebUtility.YaExisteUnaFacturaComoEsta(factura, ctx);
                if (fc != null)
                {
                    string m = String.Format("Ya hay una factura del proveedor para este año {0:yyyy} con el mismo número {1}", fc.FechaEmision, fc.NumFactura);
                    throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, m));
                }

                string application = "PortalPro";
                switch (userId.Substring(0, 1))
                {
                    case "U":
                        application = "PortalPro2";
                        break;
                    case "G":
                        application = "PortalPro";
                        break;
                }
                // En la actualización a lo mejor no han cargado ningún archivo
                string fPdf = PortalProWebUtility.BuscarArchivoCargado(application, userId, "Factura", "PDF");
                if (fPdf == "")
                {
                    throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Se necesita un fichero PDF asociado a la factura (CabFactura)"));
                }
                // el archivo Xml no es obligatorio, pero si lo han subido cargamos el fichero
                string fXml = PortalProWebUtility.BuscarArchivoCargado(application, userId, "Factura", "XML");
                // Controlamos las propiedades que son en realidad objetos.
                int proveedorId = 0;
                if (factura.Proveedor != null)
                {
                    proveedorId = factura.Proveedor.ProveedorId;
                    factura.Proveedor = null;
                }
                int documentoPdfId = 0;
                if (factura.DocumentoPdf != null)
                {
                    documentoPdfId = factura.DocumentoPdf.DocumentoId;
                    factura.DocumentoPdf = null;
                }
                int documentoXmlId = 0;
                if (factura.DocumentoXml != null)
                {
                    documentoXmlId = factura.DocumentoXml.DocumentoId;
                    factura.DocumentoXml = null;
                }
                int empresaId = 0;
                if (factura.Empresa != null)
                {
                    empresaId = factura.Empresa.EmpresaId;
                    factura.Empresa = null;
                }
                int responsableId = 0;
                if (factura.Responsable != null)
                {
                    responsableId = factura.Responsable.ResponsableId;
                    factura.Responsable = null;
                }
                if (factura.Estado == null)
                    factura.Estado = "ACEPTADA";
                // modificar el objeto
                ctx.AttachCopy<CabFactura>(factura);
                // volvemos a leer el objecto para que lo maneje este contexto.
                factura = (from f in ctx.CabFacturas
                           where f.CabFacturaId == id
                           select f).FirstOrDefault<CabFactura>();
                if (proveedorId != 0)
                {
                    factura.Proveedor = (from p in ctx.Proveedors
                                         where p.ProveedorId == proveedorId
                                         select p).FirstOrDefault<Proveedor>();
                }
                if (documentoPdfId != 0)
                {
                    factura.DocumentoPdf = (from d in ctx.Documentos
                                            where d.DocumentoId == documentoPdfId
                                            select d).FirstOrDefault<Documento>();
                }
                if (documentoXmlId != 0)
                {
                    factura.DocumentoXml = (from d in ctx.Documentos
                                            where d.DocumentoId == documentoXmlId
                                            select d).FirstOrDefault<Documento>();
                }
                if (empresaId != 0)
                {
                    factura.Empresa = (from e in ctx.Empresas
                                       where e.EmpresaId == empresaId
                                       select e).FirstOrDefault<Empresa>();
                }
                if (responsableId != 0)
                {
                    factura.Responsable = (from r in ctx.Responsables
                                           where r.ResponsableId == responsableId
                                           select r).FirstOrDefault<Responsable>();
                }
                Documento doc = null; // para cargar temporalmente documentos
                // si se cumplen estas condiciones es que han cambiado el archivo asociado.
                if (fPdf != "")
                {
                    doc = factura.DocumentoPdf;
                    factura.DocumentoPdf = PortalProWebUtility.CrearDocumentoDesdeArchivoCargado(application, fPdf, ctx);
                    PortalProWebUtility.EliminarDocumento(doc, ctx);
                }
                if (fXml != "")
                {
                    doc = factura.DocumentoXml;
                    factura.DocumentoXml = PortalProWebUtility.CrearDocumentoDesdeArchivoCargado(application, fXml, ctx);
                    PortalProWebUtility.EliminarDocumento(doc, ctx);
                }
                factura.Historial += String.Format("{0:dd/MM/yyyy hh:mm:ss} La factura {1} con Total {2:0.0} € has sido modificada con estado {3} <br/>",
                    DateTime.Now, factura.NumFactura, factura.TotalFactura, factura.Estado);
                factura.Generada = false; ;
                ctx.SaveChanges();
                return ctx.CreateDetachedCopy<CabFactura>(factura, x => x.Proveedor, x => x.DocumentoPdf, x => x.DocumentoXml);
            }
        }