예제 #1
0
        public async Task <IActionResult> Create([Bind("id,RangoInicio,RangoFin,Empresa")]
                                                 TaloneraEntity taloneraEntity, int?id)
        {
            if (ModelState.IsValid)
            {
                // valida que el inicio de rango sea menor que el final de rango
                if (taloneraEntity.RangoInicio >= taloneraEntity.RangoFin ||
                    taloneraEntity.RangoFin <= taloneraEntity.RangoInicio
                    )
                {
                    return(RedirectToAction(nameof(ErrorTalonera)));
                }

                EmpresaEntity empresa = _context.Empresa.Where(e => e.id == id).FirstOrDefault();

                DistribuidorEntity distribuidor = _context.Distribuidor
                                                  .Where(d => d.Email == User.Identity.Name).FirstOrDefault();

                _context.Talonera.Add(new TaloneraEntity
                {
                    RangoInicio    = taloneraEntity.RangoInicio,
                    RangoFin       = taloneraEntity.RangoFin,
                    Empresa        = empresa,
                    Distribuidor   = distribuidor,
                    StatusTalonera = "Activo"
                });;

                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(taloneraEntity));
        }
        public async Task <IActionResult> Edit(int id, [Bind("id,EmpresaVinculada,StatusDistribuidor,Nombre,Apellidos,Direccion,Telefono,Email")]
                                               DistribuidorEntity distribuidorEntity)
        {
            if (id != distribuidorEntity.id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(distribuidorEntity);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!DistribuidorEntityExists(distribuidorEntity.id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(distribuidorEntity));
        }
예제 #3
0
        public async Task <IActionResult> GetUserByEmail([FromBody] EmailRequest emailRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            UsuarioEntity userEntity = await _userHelper.GetUserAsync(emailRequest.Email);

            if (userEntity == null)
            {
                return(NotFound("no se encontro el usuario"));
            }

            if (userEntity.UserType == UserType.Distribuidor)
            {
                DistribuidorEntity dist = _dataContext.Distribuidor
                                          .Where(d => d.Email == emailRequest.Email)
                                          .FirstOrDefault();

                return(Ok(_converterHelper.ToDistUserResponse(userEntity, dist)));
            }
            else
            {
                ClienteEntity clie = _dataContext.Cliente
                                     .Where(c => c.Email == emailRequest.Email)
                                     .FirstOrDefault();

                return(Ok(_converterHelper.ToClieUserResponse(userEntity, clie)));
            }
        }
        public async Task <IActionResult> PutDistribuidorEntity([FromRoute] int id, [FromBody] DistribuidorEntity distribuidorEntity)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

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

            _context.Entry(distribuidorEntity).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!DistribuidorEntityExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
예제 #5
0
        public async Task <IActionResult> Vincular(int id, [Bind("id,Email,Nombre,Apellidos,Direccion,Telefono")]
                                                   ClienteEntity clienteEntity)
        {
            if (id != clienteEntity.id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    DistribuidorEntity distribuidor = _context.Distribuidor
                                                      .Where(d => d.Email == User.Identity.Name).FirstOrDefault();

                    _context.ClienteDistribuidor.Add(new ClienteDistribuidor
                    {
                        ClienteId      = clienteEntity.id,
                        DistribuidorId = distribuidor.id,
                    });

                    await _context.SaveChangesAsync();


                    return(RedirectToAction(nameof(Index)));
                }
                catch (Exception e)
                {
                    return(RedirectToAction(nameof(Index)));
                }
            }
            return(View(clienteEntity));
        }
예제 #6
0
        // GET: ClienteEntities
        public async Task <IActionResult> Index()
        {
            DistribuidorEntity distribuidor = _context.Distribuidor.Where(d => d.Email == User.Identity.Name).FirstOrDefault();

            return(View(await _context.ClienteDistribuidor
                        .Include(item => item.Cliente)
                        .Where(cd => cd.DistribuidorId == distribuidor.id)
                        .ToListAsync()));
        }
        public async Task <IActionResult> Create([Bind("id,EmpresaVinculada,StatusDistribuidor")] DistribuidorEntity distribuidorEntity)
        {
            if (ModelState.IsValid)
            {
                _context.Add(distribuidorEntity);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(distribuidorEntity));
        }
        public async Task <IActionResult> PostDistribuidorEntity([FromBody] DistribuidorEntity distribuidorEntity)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.Distribuidor.Add(distribuidorEntity);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetDistribuidorEntity", new { id = distribuidorEntity.id }, distribuidorEntity));
        }
예제 #9
0
        public async Task <IActionResult> getAdeudos()
        {
            //OBTENER USUARIO LOGUEADO
            DistribuidorEntity distribuidor = _context.Distribuidor.Where(d => d.Email == User.Identity.Name).FirstOrDefault();

            List <AdeudosClientesChartData> AdeudosChartData = new List <AdeudosClientesChartData>();


            //Obtener adeudos
            List <PagoEntity> adeudos = _context.Pago
                                        .Include(p => p.Vale.Cliente)
                                        .Include(p => p.Vale.Talonera)
                                        .Include(p => p.Vale.Talonera.Empresa)
                                        .Where(p => p.Distribuidor.id == distribuidor.id && p.Pagado == false & p.Vale.status_vale == "Activo")
                                        .ToList();


            for (int i = 0; i < adeudos.Count; i++)
            {
                AdeudosClientesChartData data = new AdeudosClientesChartData();
                data.AdeudoCliente = adeudos[i].Cantidad;
                data.EmailCliente  = adeudos[i].Vale.Cliente.Nombre + " " + adeudos[i].Vale.Cliente.Apellidos + ": " + adeudos[i].Vale.Talonera.Empresa.NombreEmpresa +
                                     " " + adeudos[i].Vale.Talonera.RangoInicio.ToString() +
                                     "-" + adeudos[i].Vale.Talonera.RangoFin.ToString();



                AdeudosChartData.Add(data);
            }


            //obtener correos
            List <ClienteDistribuidor> clienteDistribuidor = await _context.ClienteDistribuidor
                                                             .Include(item => item.Cliente)
                                                             .Where(cd => cd.DistribuidorId == distribuidor.id)
                                                             .ToListAsync();



            Debug.WriteLine("apara aqui");


            if (adeudos.Count == 0)
            {
                return(View("TestView"));
            }
            else
            {
                return(Json(AdeudosChartData));
            }
        }
예제 #10
0
        // GET: Vales
        public async Task <IActionResult> Index(int?id)
        {
            if (User.Identity.IsAuthenticated && User.IsInRole("Distribuidor"))
            {
                DistribuidorEntity distribuidor = _context.Distribuidor.Where(d => d.Email == User.Identity.Name).FirstOrDefault();

                return(View(await _context.Vale
                            .Include(i => i.Empresa)
                            .Include(i => i.Cliente)
                            .Include(i => i.Talonera)
                            .Where(v => v.Distribuidor.id == distribuidor.id && v.status_vale == "Activo")
                            .ToListAsync()));
            }
            else if (User.Identity.IsAuthenticated && User.IsInRole("Admin"))
            {
                if (id == null)
                {
                    return(NotFound());
                }

                DistribuidorEntity dist = _context.Distribuidor.Where(d => d.id == id).FirstOrDefault();
                ViewBag.EmailDist = dist.Email;

                return(View(await _context.Vale
                            .Include(i => i.Empresa)
                            .Include(i => i.Cliente)
                            .Include(i => i.Talonera)
                            .Where(v => v.Distribuidor.id == id && v.status_vale == "Activo")
                            .ToListAsync()));
            }
            else
            {
                if (id == null)
                {
                    return(NotFound());
                }

                DistribuidorEntity dist = _context.Distribuidor.Where(d => d.id == id).FirstOrDefault();
                ViewBag.EmailDist = dist.Email;

                return(View(await _context.Vale
                            .Include(i => i.Empresa)
                            .Include(i => i.Cliente)
                            .Include(i => i.Talonera)
                            .Where(v => v.Distribuidor.id == id && v.status_vale == "Activo" &&
                                   v.Cliente.Email == User.Identity.Name)
                            .ToListAsync()));
            }
        }
예제 #11
0
        public UserResponse ToDistUserResponse(UsuarioEntity user, DistribuidorEntity dist)
        {
            if (user == null)
            {
                return(null);
            }

            return(new UserResponse
            {
                Email = user.Email,
                Id = user.Id,
                PhoneNumber = user.PhoneNumber,
                UserType = user.UserType,
                Dist = ToDistResponse(dist)
            });
        }
예제 #12
0
        public DistResponse ToDistResponse(DistribuidorEntity dist)
        {
            if (dist == null)
            {
                return(null);
            }

            return(new DistResponse
            {
                id = dist.id,
                Nombre = dist.Nombre,
                Apellidos = dist.Apellidos,
                Direccion = dist.Direccion,
                Telefono = dist.Telefono,
                Email = dist.Email,
                Status = dist.StatusDistribuidor
            });
        }
예제 #13
0
        public async Task <IActionResult> PostTalonera([FromBody] CreateTaloneraRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            EmpresaEntity empresa = _context.Empresa.Where(e => e.id == request.EmpresaId).FirstOrDefault();

            if (empresa == null)
            {
                return(BadRequest(new Response
                {
                    IsSuccess = false,
                    Message = "La empresa especificada no existe."
                }));
            }

            DistribuidorEntity dist = _context.Distribuidor.Where(d => d.id == request.DistId).FirstOrDefault();

            if (dist == null)
            {
                return(BadRequest(new Response
                {
                    IsSuccess = false,
                    Message = "El distribuidor especificado no existe."
                }));
            }

            _context.Talonera.Add(new TaloneraEntity
            {
                RangoInicio    = request.RangoInicio,
                RangoFin       = request.RangoFin,
                Empresa        = empresa,
                Distribuidor   = dist,
                StatusTalonera = "Activo"
            });;

            await _context.SaveChangesAsync();

            return(NoContent());
        }
        public async Task <IActionResult> PostVale([FromBody] CreateValeRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            request.FechaCreacion = DateTime.UtcNow;

            EmpresaEntity empresa = _context.Empresa.Where(e => e.id == request.EmpresaId).FirstOrDefault();

            if (empresa == null)
            {
                return(BadRequest(new Response
                {
                    IsSuccess = false,
                    Message = "La empresa especificada no existe."
                }));
            }

            ClienteEntity cliente = _context.Cliente.Where(c => c.id == request.ClienteId).FirstOrDefault();

            if (cliente == null)
            {
                return(BadRequest(new Response
                {
                    IsSuccess = false,
                    Message = "El cliente especificado no existe."
                }));
            }

            DistribuidorEntity dist = _context.Distribuidor.Where(d => d.id == request.DistId).FirstOrDefault();

            if (dist == null)
            {
                return(BadRequest(new Response
                {
                    IsSuccess = false,
                    Message = "El distribuidor especificado no existe."
                }));
            }

            TaloneraEntity talonera = _context.Talonera.Where(t => t.id == request.TaloneraId).FirstOrDefault();

            if (talonera == null)
            {
                return(BadRequest(new Response
                {
                    IsSuccess = false,
                    Message = "La talonera especificada no existe."
                }));
            }

            // evalua que el folio del vale ingresado este dentro del rango de la talonera a la que pertenece

            if (talonera == null ||
                request.NumeroFolio < talonera.RangoInicio || request.NumeroFolio > talonera.RangoFin)
            {
                return(BadRequest(new Response
                {
                    IsSuccess = false,
                    Message = "Folio fuera de rango."
                }));
            }

            ValeEntity valeValidacion = _context.Vale
                                        .Where(v => v.Talonera.id == talonera.id && v.NumeroFolio == request.NumeroFolio)
                                        .FirstOrDefault();

            // evalua que el folio del vale ingresado no se repita dentro de la talonera a la que pertenece

            if (valeValidacion != null)
            {
                return(BadRequest(new Response
                {
                    IsSuccess = false,
                    Message = "Folio repetido."
                }));
            }

            ValeEntity valeInsert = new ValeEntity
            {
                Monto           = request.Monto,
                CantidadPagos   = request.CantidadPagos,
                NumeroFolio     = request.NumeroFolio,
                FechaCreacion   = request.FechaCreacion,
                FechaPrimerPago = request.FechaPrimerPago,
                Distribuidor    = dist,
                Cliente         = cliente,
                Empresa         = empresa,
                Talonera        = talonera,
                status_vale     = "Activo"
            };

            _context.Vale.Add(valeInsert);

            await _context.SaveChangesAsync();

            float    division = valeInsert.Monto / valeInsert.CantidadPagos;
            DateTime Fecha    = valeInsert.FechaPrimerPago;


            for (int i = 0; i < valeInsert.CantidadPagos; i++)
            {
                _context.Pago.Add(new PagoEntity
                {
                    Cantidad     = division,
                    FechaLimite  = Fecha,
                    Vale         = valeInsert,
                    Distribuidor = dist
                });
                //ENERO
                if (Fecha.Month == 1 && Fecha.Day == 1)
                {
                    Fecha = Fecha.AddDays(14);
                }
                else if (Fecha.Month == 1 && Fecha.Day == 15)
                {
                    Fecha = Fecha.AddDays(15);
                }
                else if (Fecha.Month == 1 && Fecha.Day == 30)
                {
                    Fecha = Fecha.AddDays(16);
                }

                //FEBRERO
                else if (Fecha.Month == 2 && Fecha.Day == 1)
                {
                    Fecha = Fecha.AddDays(14);
                }
                else if (Fecha.Month == 2 && Fecha.Day == 15)
                {
                    Fecha = Fecha.AddDays(14);
                }
                else if (Fecha.Month == 2 && Fecha.Day == 28)
                {
                    Fecha = Fecha.AddDays(15);
                }

                //MARZO
                else if (Fecha.Month == 3 && Fecha.Day == 1)
                {
                    Fecha = Fecha.AddDays(14);
                }
                else if (Fecha.Month == 3 && Fecha.Day == 15)
                {
                    Fecha = Fecha.AddDays(15);
                }
                else if (Fecha.Month == 3 && Fecha.Day == 30)
                {
                    Fecha = Fecha.AddDays(16);
                }

                //ABRIL
                else if (Fecha.Month == 4 && Fecha.Day == 1)
                {
                    Fecha = Fecha.AddDays(14);
                }
                else if (Fecha.Month == 4 && Fecha.Day == 15)
                {
                    Fecha = Fecha.AddDays(15);
                }
                else if (Fecha.Month == 4 && Fecha.Day == 30)
                {
                    Fecha = Fecha.AddDays(15);
                }

                //MAYO
                else if (Fecha.Month == 5 && Fecha.Day == 1)
                {
                    Fecha = Fecha.AddDays(14);
                }
                else if (Fecha.Month == 5 && Fecha.Day == 15)
                {
                    Fecha = Fecha.AddDays(15);
                }
                else if (Fecha.Month == 5 && Fecha.Day == 30)
                {
                    Fecha = Fecha.AddDays(16);
                }

                //JUNIO
                else if (Fecha.Month == 6 && Fecha.Day == 1)
                {
                    Fecha = Fecha.AddDays(14);
                }
                else if (Fecha.Month == 6 && Fecha.Day == 15)
                {
                    Fecha = Fecha.AddDays(15);
                }
                else if (Fecha.Month == 6 && Fecha.Day == 30)
                {
                    Fecha = Fecha.AddDays(15);
                }

                //JULIO
                else if (Fecha.Month == 7 && Fecha.Day == 1)
                {
                    Fecha = Fecha.AddDays(14);
                }
                else if (Fecha.Month == 7 && Fecha.Day == 15)
                {
                    Fecha = Fecha.AddDays(15);
                }
                else if (Fecha.Month == 7 && Fecha.Day == 30)
                {
                    Fecha = Fecha.AddDays(16);
                }

                //AGOSTO
                else if (Fecha.Month == 8 && Fecha.Day == 1)
                {
                    Fecha = Fecha.AddDays(14);
                }
                else if (Fecha.Month == 8 && Fecha.Day == 15)
                {
                    Fecha = Fecha.AddDays(15);
                }
                else if (Fecha.Month == 8 && Fecha.Day == 30)
                {
                    Fecha = Fecha.AddDays(16);
                }

                //SEPTIEMBRE
                else if (Fecha.Month == 9 && Fecha.Day == 1)
                {
                    Fecha = Fecha.AddDays(14);
                }
                else if (Fecha.Month == 9 && Fecha.Day == 15)
                {
                    Fecha = Fecha.AddDays(15);
                }
                else if (Fecha.Month == 9 && Fecha.Day == 30)
                {
                    Fecha = Fecha.AddDays(15);
                }

                //OCTUBRE
                else if (Fecha.Month == 10 && Fecha.Day == 1)
                {
                    Fecha = Fecha.AddDays(14);
                }
                else if (Fecha.Month == 10 && Fecha.Day == 15)
                {
                    Fecha = Fecha.AddDays(15);
                }
                else if (Fecha.Month == 10 && Fecha.Day == 30)
                {
                    Fecha = Fecha.AddDays(16);
                }

                //NOVIEMBRE
                else if (Fecha.Month == 11 && Fecha.Day == 1)
                {
                    Fecha = Fecha.AddDays(14);
                }
                else if (Fecha.Month == 11 && Fecha.Day == 15)
                {
                    Fecha = Fecha.AddDays(15);
                }
                else if (Fecha.Month == 11 && Fecha.Day == 30)
                {
                    Fecha = Fecha.AddDays(15);
                }
                //DICIEMBRE
                else if (Fecha.Month == 12 && Fecha.Day == 1)
                {
                    Fecha = Fecha.AddDays(14);
                }
                else if (Fecha.Month == 12 && Fecha.Day == 15)
                {
                    Fecha = Fecha.AddDays(15);
                }
                else if (Fecha.Month == 12 && Fecha.Day == 30)
                {
                    Fecha = Fecha.AddDays(16);
                }
                //Fecha = Fecha.AddDays(15);
            }

            await _context.SaveChangesAsync();

            return(NoContent());
        }
예제 #15
0
        public async Task <IActionResult> ChangeUser()
        {
            UsuarioEntity authUser = await _userHelper.GetUserByEmailAsync(User.Identity.Name);

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

            EditUserViewModel model = new EditUserViewModel();

            switch (authUser.UserType)
            {
            case UserType.Admin:
                AdministradorEntity admin = _dataContext.Administrador
                                            .Where(a => a.Email == User.Identity.Name).FirstOrDefault();

                //esto se hace solo en el caso de admin ya que es el unico con registros en seed
                if (admin == null)
                {
                    return(NotFound());
                }

                model.FirstName   = admin.Nombre;
                model.LastName    = admin.Apellidos;
                model.PhoneNumber = admin.Telefono;
                model.userType    = UserType.Admin;

                break;

            case UserType.Distribuidor:

                DistribuidorEntity dist = _dataContext.Distribuidor
                                          .Where(d => d.Email == User.Identity.Name).FirstOrDefault();

                model.FirstName   = dist.Nombre;
                model.LastName    = dist.Apellidos;
                model.PhoneNumber = dist.Telefono;
                model.Address     = dist.Direccion;
                model.userType    = UserType.Distribuidor;

                break;

            case UserType.Cliente:

                ClienteEntity cliente = _dataContext.Cliente
                                        .Where(c => c.Email == User.Identity.Name).FirstOrDefault();

                model.FirstName   = cliente.Nombre;
                model.LastName    = cliente.Apellidos;
                model.PhoneNumber = cliente.Telefono;
                model.Address     = cliente.Direccion;
                model.userType    = UserType.Cliente;

                break;

            case UserType.Empresa:

                EmpresaEntity empresa = _dataContext.Empresa
                                        .Where(e => e.Email == User.Identity.Name).FirstOrDefault();

                model.FirstName   = empresa.NombreRepresentante;
                model.LastName    = empresa.ApellidosRepresentante;
                model.PhoneNumber = empresa.TelefonoRepresentante;
                model.Address     = empresa.Direccion;
                model.userType    = UserType.Empresa;

                break;
            }

            return(View(model));
        }
예제 #16
0
        public async Task <IActionResult> ChangeUser(EditUserViewModel model)
        {
            if (ModelState.IsValid)
            {
                string path = "";

                UsuarioEntity user = await _userHelper.GetUserByEmailAsync(User.Identity.Name);

                await _userHelper.UpdateUserAsync(user);

                switch (model.userType)
                {
                case UserType.Admin:

                    AdministradorEntity admin = _dataContext.Administrador
                                                .Where(a => a.Email == User.Identity.Name).FirstOrDefault();

                    admin.Nombre    = model.FirstName;
                    admin.Apellidos = model.LastName;
                    admin.Telefono  = model.PhoneNumber;

                    _dataContext.Update(admin);
                    await _dataContext.SaveChangesAsync();

                    return(RedirectToAction("Index", "Home"));

                case UserType.Distribuidor:
                    DistribuidorEntity dist = _dataContext.Distribuidor
                                              .Where(d => d.Email == User.Identity.Name).FirstOrDefault();

                    dist.Nombre    = model.FirstName;
                    dist.Apellidos = model.LastName;
                    dist.Telefono  = model.PhoneNumber;

                    _dataContext.Update(dist);
                    await _dataContext.SaveChangesAsync();

                    return(RedirectToAction("Index", "Home"));

                case UserType.Cliente:

                    ClienteEntity cliente = _dataContext.Cliente
                                            .Where(c => c.Email == User.Identity.Name).FirstOrDefault();

                    cliente.Nombre    = model.FirstName;
                    cliente.Apellidos = model.LastName;
                    cliente.Telefono  = model.PhoneNumber;

                    _dataContext.Update(cliente);
                    await _dataContext.SaveChangesAsync();

                    return(RedirectToAction("Index", "Home"));

                case UserType.Empresa:

                    EmpresaEntity empresa = _dataContext.Empresa
                                            .Where(e => e.Email == User.Identity.Name).FirstOrDefault();

                    empresa.NombreRepresentante    = model.FirstName;
                    empresa.ApellidosRepresentante = model.LastName;
                    empresa.TelefonoRepresentante  = model.PhoneNumber;

                    _dataContext.Update(empresa);
                    await _dataContext.SaveChangesAsync();

                    return(RedirectToAction("Index", "Home"));


                default:
                    break;
                }

                return(RedirectToAction("Index", "Home"));
            }

            return(View(model));
        }
예제 #17
0
        public async Task <IActionResult> Create(
            [Bind("id,Monto,ClienteId,EmpresaId,DistribuidorId,Fecha,FechaPrimerPago,status_vale,NumeroFolio,CantidadPagos")]
            ValeEntity valeEntity, int?idTalonera, int?idCliente)
        {
            DistribuidorEntity distribuidor = _context.Distribuidor
                                              .Where(d => d.Email == User.Identity.Name).FirstOrDefault();

            TaloneraEntity talonera = _context.Talonera
                                      .Include(item => item.Empresa)
                                      .Where(t => t.id == idTalonera)
                                      .FirstOrDefault();

            ViewBag.Talonera = talonera;

            ClienteEntity cliente = _context.Cliente.Where(c => c.id == idCliente).FirstOrDefault();

            ViewBag.Cliente = cliente;

            if (ModelState.IsValid)
            {
                // evalua que el folio del vale ingresado este dentro del rango de la talonera a la que pertenece

                if (talonera == null ||
                    valeEntity.NumeroFolio < talonera.RangoInicio || valeEntity.NumeroFolio > talonera.RangoFin)
                {
                    return(RedirectToAction(nameof(ErrorVale)));
                }

                ValeEntity valeValidacion = _context.Vale
                                            .Where(v => v.Talonera.id == talonera.id && v.NumeroFolio == valeEntity.NumeroFolio)
                                            .FirstOrDefault();

                // evalua que el folio del vale ingresado no se repita dentro de la talonera a la que pertenece

                if (valeValidacion != null)
                {
                    return(RedirectToAction(nameof(ErrorVale)));
                }

                ValeEntity valeInsert = new ValeEntity
                {
                    Monto           = valeEntity.Monto,
                    CantidadPagos   = valeEntity.CantidadPagos,
                    FechaPrimerPago = valeEntity.FechaPrimerPago,
                    FechaCreacion   = DateTime.UtcNow,
                    status_vale     = "Activo",
                    Talonera        = talonera,
                    Distribuidor    = distribuidor,
                    Empresa         = talonera.Empresa,
                    Cliente         = cliente,
                    NumeroFolio     = valeEntity.NumeroFolio,
                };

                _context.Vale.Add(valeInsert);

                await _context.SaveChangesAsync();

                float    division = valeEntity.Monto / valeEntity.CantidadPagos;
                DateTime Fecha    = valeEntity.FechaPrimerPago;


                for (int i = 0; i < valeEntity.CantidadPagos; i++)
                {
                    _context.Pago.Add(new PagoEntity
                    {
                        Cantidad     = division,
                        FechaLimite  = Fecha,
                        Vale         = valeInsert,
                        Distribuidor = distribuidor
                    });
                    //ENERO
                    if (Fecha.Month == 1 && Fecha.Day == 1)
                    {
                        Fecha = Fecha.AddDays(14);
                    }
                    else if (Fecha.Month == 1 && Fecha.Day == 15)
                    {
                        Fecha = Fecha.AddDays(15);
                    }
                    else if (Fecha.Month == 1 && Fecha.Day == 30)
                    {
                        Fecha = Fecha.AddDays(16);
                    }

                    //FEBRERO
                    else if (Fecha.Month == 2 && Fecha.Day == 1)
                    {
                        Fecha = Fecha.AddDays(14);
                    }
                    else if (Fecha.Month == 2 && Fecha.Day == 15)
                    {
                        Fecha = Fecha.AddDays(14);
                    }
                    else if (Fecha.Month == 2 && Fecha.Day == 28)
                    {
                        Fecha = Fecha.AddDays(15);
                    }

                    //MARZO
                    else if (Fecha.Month == 3 && Fecha.Day == 1)
                    {
                        Fecha = Fecha.AddDays(14);
                    }
                    else if (Fecha.Month == 3 && Fecha.Day == 15)
                    {
                        Fecha = Fecha.AddDays(15);
                    }
                    else if (Fecha.Month == 3 && Fecha.Day == 30)
                    {
                        Fecha = Fecha.AddDays(16);
                    }

                    //ABRIL
                    else if (Fecha.Month == 4 && Fecha.Day == 1)
                    {
                        Fecha = Fecha.AddDays(14);
                    }
                    else if (Fecha.Month == 4 && Fecha.Day == 15)
                    {
                        Fecha = Fecha.AddDays(15);
                    }
                    else if (Fecha.Month == 4 && Fecha.Day == 30)
                    {
                        Fecha = Fecha.AddDays(15);
                    }

                    //MAYO
                    else if (Fecha.Month == 5 && Fecha.Day == 1)
                    {
                        Fecha = Fecha.AddDays(14);
                    }
                    else if (Fecha.Month == 5 && Fecha.Day == 15)
                    {
                        Fecha = Fecha.AddDays(15);
                    }
                    else if (Fecha.Month == 5 && Fecha.Day == 30)
                    {
                        Fecha = Fecha.AddDays(16);
                    }

                    //JUNIO
                    else if (Fecha.Month == 6 && Fecha.Day == 1)
                    {
                        Fecha = Fecha.AddDays(14);
                    }
                    else if (Fecha.Month == 6 && Fecha.Day == 15)
                    {
                        Fecha = Fecha.AddDays(15);
                    }
                    else if (Fecha.Month == 6 && Fecha.Day == 30)
                    {
                        Fecha = Fecha.AddDays(15);
                    }

                    //JULIO
                    else if (Fecha.Month == 7 && Fecha.Day == 1)
                    {
                        Fecha = Fecha.AddDays(14);
                    }
                    else if (Fecha.Month == 7 && Fecha.Day == 15)
                    {
                        Fecha = Fecha.AddDays(15);
                    }
                    else if (Fecha.Month == 7 && Fecha.Day == 30)
                    {
                        Fecha = Fecha.AddDays(16);
                    }

                    //AGOSTO
                    else if (Fecha.Month == 8 && Fecha.Day == 1)
                    {
                        Fecha = Fecha.AddDays(14);
                    }
                    else if (Fecha.Month == 8 && Fecha.Day == 15)
                    {
                        Fecha = Fecha.AddDays(15);
                    }
                    else if (Fecha.Month == 8 && Fecha.Day == 30)
                    {
                        Fecha = Fecha.AddDays(16);
                    }

                    //SEPTIEMBRE
                    else if (Fecha.Month == 9 && Fecha.Day == 1)
                    {
                        Fecha = Fecha.AddDays(14);
                    }
                    else if (Fecha.Month == 9 && Fecha.Day == 15)
                    {
                        Fecha = Fecha.AddDays(15);
                    }
                    else if (Fecha.Month == 9 && Fecha.Day == 30)
                    {
                        Fecha = Fecha.AddDays(15);
                    }

                    //OCTUBRE
                    else if (Fecha.Month == 10 && Fecha.Day == 1)
                    {
                        Fecha = Fecha.AddDays(14);
                    }
                    else if (Fecha.Month == 10 && Fecha.Day == 15)
                    {
                        Fecha = Fecha.AddDays(15);
                    }
                    else if (Fecha.Month == 10 && Fecha.Day == 30)
                    {
                        Fecha = Fecha.AddDays(16);
                    }

                    //NOVIEMBRE
                    else if (Fecha.Month == 11 && Fecha.Day == 1)
                    {
                        Fecha = Fecha.AddDays(14);
                    }
                    else if (Fecha.Month == 11 && Fecha.Day == 15)
                    {
                        Fecha = Fecha.AddDays(15);
                    }
                    else if (Fecha.Month == 11 && Fecha.Day == 30)
                    {
                        Fecha = Fecha.AddDays(15);
                    }
                    //DICIEMBRE
                    else if (Fecha.Month == 12 && Fecha.Day == 1)
                    {
                        Fecha = Fecha.AddDays(14);
                    }
                    else if (Fecha.Month == 12 && Fecha.Day == 15)
                    {
                        Fecha = Fecha.AddDays(15);
                    }
                    else if (Fecha.Month == 12 && Fecha.Day == 30)
                    {
                        Fecha = Fecha.AddDays(16);
                    }
                    //Fecha = Fecha.AddDays(15);
                }

                Debug.WriteLine("DIVISION");

                Debug.WriteLine(division);

                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            return(View(valeEntity));
        }