public IHttpActionResult PutCompraDerecho(int id, CompraDerecho compraDerecho)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != compraDerecho.Id)
            {
                return(BadRequest());
            }

            db.Entry(compraDerecho).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CompraDerechoExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public IHttpActionResult GetCompraDerecho(int id)
        {
            CompraDerecho compraDerecho = db.CompraDerechoes.Find(id);

            if (compraDerecho == null)
            {
                return(NotFound());
            }

            return(Ok(compraDerecho));
        }
        public IHttpActionResult DeleteCompraDerecho(int id)
        {
            CompraDerecho compraDerecho = db.CompraDerechoes.Find(id);

            if (compraDerecho == null)
            {
                return(NotFound());
            }

            db.CompraDerechoes.Remove(compraDerecho);
            db.SaveChanges();

            return(Ok(compraDerecho));
        }
        public IHttpActionResult PostCompraDerecho(CompraDerecho compraDerecho)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }


            var existeFechaInicioDeLicenciaCompra = db.CompraDerechoes.Where(x => x.Isan == compraDerecho.Isan && x.PaisLicencia == compraDerecho.PaisLicencia &&
                                                                             ((x.FechaInicioDeLicencia <= compraDerecho.FechaInicioDeLicencia))).ToList();

            var existeFechaInicioDeLicenciaCompra2 = db.CompraDerechoes.Where(x => x.Isan == compraDerecho.Isan && x.PaisLicencia == compraDerecho.PaisLicencia &&
                                                                              ((x.FechaFinDeLicencia >= compraDerecho.FechaInicioDeLicencia))).ToList();



            //controlo que la fecha inicio ingresada ,si existe en ambos casos a la misma ves no dejo segir con el alta
            if (existeFechaInicioDeLicenciaCompra.Count > 0 && existeFechaInicioDeLicenciaCompra2.Count > 0)
            {
                return(BadRequest());
            }///Funciona



            var existeFechaInicioDeLicenciaCompra3 = db.CompraDerechoes.Where(x => x.Isan == compraDerecho.Isan && x.PaisLicencia == compraDerecho.PaisLicencia &&
                                                                              ((x.FechaInicioDeLicencia <= compraDerecho.FechaFinDeLicencia))).ToList();

            var existeFechaInicioDeLicenciaCompra4 = db.CompraDerechoes.Where(x => x.Isan == compraDerecho.Isan && x.PaisLicencia == compraDerecho.PaisLicencia &&
                                                                              ((x.FechaFinDeLicencia >= compraDerecho.FechaFinDeLicencia))).ToList();

            // la fecha inicio es previa el periodo y la fecha fin cae en el periodo
            if (existeFechaInicioDeLicenciaCompra3.Count > 0 && existeFechaInicioDeLicenciaCompra3.Count > 0)
            {
                return(BadRequest());
            }


            // caso donde las fechas ingresadas ambas incluyen el peroado de compra

            var existePeriodoIncluidoIngresado = db.CompraDerechoes.Where(x => x.Isan == compraDerecho.Isan && x.PaisLicencia == compraDerecho.PaisLicencia &&
                                                                          ((x.FechaInicioDeLicencia >= compraDerecho.FechaInicioDeLicencia) && (x.FechaFinDeLicencia <= compraDerecho.FechaFinDeLicencia))).ToList();

            if (existePeriodoIncluidoIngresado.Count > 0)
            {
                return(BadRequest());
            }


            // periodo ingresado incluido en pariedo Ya previamenteIngresado
            var existePeriodoIngresadoIncluidoenEnunacompra = db.CompraDerechoes.Where(x => x.Isan == compraDerecho.Isan && x.PaisLicencia == compraDerecho.PaisLicencia &&
                                                                                       ((x.FechaInicioDeLicencia <= compraDerecho.FechaInicioDeLicencia) && (x.FechaFinDeLicencia >= compraDerecho.FechaFinDeLicencia))).ToList();

            if (existePeriodoIngresadoIncluidoenEnunacompra.Count > 0)
            {
                return(BadRequest());
            }



            db.CompraDerechoes.Add(compraDerecho);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = compraDerecho.Id }, compraDerecho));
        }
Ejemplo n.º 5
0
        public ActionResult AltaCompraDerecho(CompraDerecho model, FormCollection collection)
        {
            try
            {
                response = clienteConexion.GetAsync(materialUri).Result;

                resClientes = clienteConexion.GetAsync(clienteUri).Result;

                if (response.IsSuccessStatusCode && resClientes.IsSuccessStatusCode)
                {
                    var materialRespuesta = response.Content.ReadAsAsync <IEnumerable <Material> >().Result;
                    var clienteRespuesta  = resClientes.Content.ReadAsAsync <IEnumerable <Cliente> >().Result;



                    if (materialRespuesta != null)
                    {
                        ViewBag.Material = materialRespuesta;
                        ViewBag.Cliente  = clienteRespuesta;
                        //return View("Index", prods.ToList());
                    }
                    else
                    {
                        ViewBag.Mensaje = "No se pudo obtener datos de  material ";
                    }
                }
                else
                {
                    ViewBag.Mensaje = "No se pudo obtener datos de cliente y material ";
                }


                string auxTxtClienteNombreEmpresa = collection["txtClienteNombreEmpresa"];  //datosFormulario["txtNom"];
                string auxTxtMaterialIsan         = collection["txtMaterialIsan"];
                //string auxCliente=model.
                //prepara las URL para que apunten y obtener cliente y material
                clienteUri2 = new Uri("http://localhost:62438/api/Clientes/" + auxTxtClienteNombreEmpresa);
                materialUri = new Uri("http://localhost:62438/api/Materials/" + auxTxtMaterialIsan);

                resClientes = clienteConexion.GetAsync(clienteUri2).Result;
                response    = clienteConexion.GetAsync(materialUri).Result;

                Cliente  unCliente  = resClientes.Content.ReadAsAsync <Cliente>().Result;
                Material unMaterial = response.Content.ReadAsAsync <Material>().Result;


                if ((unCliente != null) && (unMaterial != null))
                {
                    model.NombreEmpresaId = unCliente.NombreEmpresaId;
                    model.Isan            = unMaterial.Isan;
                    DateTime date1 = DateTime.Now;
                    model.FechaDeVenta = date1;


                    if (model.FechaFinDeLicencia < model.FechaInicioDeLicencia)
                    {
                        ViewBag.Mensaje = "las fechas ingresadas no son validas ";
                        return(View(model));
                    }

                    var tareaPost = clienteConexion.PostAsJsonAsync(compraDerechoseUri, model);

                    var result = tareaPost.Result;

                    if (result.IsSuccessStatusCode)
                    {
                        ViewBag.Mensaje = "Alta exitosa ";
                        return(View());
                        //return RedirectToAction("Index");
                    }
                    else
                    {
                        ViewBag.Mensaje = "ya existe una compra para ese pais en esas fechas";
                        return(View(model));
                    }
                }

                //return RedirectToAction("Index");
                return(View());
            }
            catch
            {
                ViewBag.Mensaje = "Error ";
                return(View());
            }
        }