Пример #1
0
        public IActionResult Create(int?idTalonera, int?idCliente)
        {
            ViewBag.idTalonera = idTalonera;
            ViewBag.idCliente  = idCliente;

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

            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;

            // generacion de numero de folio sugerido
            Random rnd = new Random();

            int folioSugerido = rnd.Next(talonera.RangoInicio, talonera.RangoFin);

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

            while (valeValidacion != null)
            {
                folioSugerido = rnd.Next(talonera.RangoInicio, talonera.RangoFin);

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

            ViewBag.FolioSugerido = folioSugerido;

            // termina generacion de numero de folio sugerido

            if (talonera.Empresa.NombreEmpresa != "Nombre Pendiente...")
            {
                ViewBag.EmpresaDisplay = talonera.Empresa.NombreEmpresa;
            }
            else
            {
                ViewBag.EmpresaDisplay = talonera.Empresa.Email;
            }

            return(View());
        }
        public async Task <IActionResult> MarcarPago([FromRoute] int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            PagoEntity pago = _context.Pago.Where(p => p.id == id).FirstOrDefault();

            if (pago.Pagado == true)
            {
                pago.Pagado = false;
            }
            else
            {
                pago.Pagado = true;
            }

            try
            {
                _context.Update(pago);
                await _context.SaveChangesAsync();

                ValeEntity vale = _context.Vale.Where(v => v.id == pago.Valeid).FirstOrDefault();

                List <PagoEntity> pagos = await _context.Pago
                                          .Where(p => p.Valeid == pago.Valeid && p.Pagado == true)
                                          .ToListAsync();

                if (pagos.Count == vale.CantidadPagos)
                {
                    vale.Pagado = true;
                }
                else
                {
                    vale.Pagado = false;
                }

                _context.Update(vale);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PagoEntityExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <IActionResult> PostValeEntity([FromBody] ValeEntity valeEntity)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.Vale.Add(valeEntity);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetValeEntity", new { id = valeEntity.id }, valeEntity));
        }
Пример #4
0
        public async Task <IActionResult> Edit(int id,
                                               [Bind("id,Monto,DistribuidorId,EmpresaId,ClienteId,status_vale,Fecha,NumeroFolio")]
                                               ValeEntity valeEntity)
        {
            if (id != valeEntity.id)
            {
                return(NotFound());
            }

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

                ValeEntity valeUntracked = _context.Vale.AsNoTracking()
                                           .Include(i => i.Talonera)
                                           .Where(v => v.id == valeEntity.id)
                                           .FirstOrDefault();

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

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

                // termina la evaluacion del rango de folio

                try
                {
                    _context.Update(valeEntity);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ValeEntityExists(valeEntity.id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(valeEntity));
        }
Пример #5
0
        public async Task <IActionResult> VerPagos(int?id)
        {
            ValeEntity vale = _context.Vale.Where(v => v.id == id).FirstOrDefault();

            if (vale.Pagado == true)
            {
                ViewBag.Pagado = true;
            }
            else
            {
                ViewBag.Pagado = false;
            }

            return(View(await _context.Pago.Where(p => p.Vale.id == id).ToListAsync()));
        }
Пример #6
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));
        }
Пример #7
0
        public async Task <IActionResult> MarcarPagado(int id, int?navId,
                                                       [Bind("id,Cantidad,FechaLimite,Pagado,Valeid")]
                                                       PagoEntity pagoEntity)
        {
            if (id != pagoEntity.id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (pagoEntity.Pagado == false)
                    {
                        pagoEntity.Pagado = true;
                    }
                    else
                    {
                        pagoEntity.Pagado = false;
                    }

                    _context.Update(pagoEntity);
                    await _context.SaveChangesAsync();

                    ValeEntity vale = _context.Vale.Where(v => v.id == pagoEntity.Valeid).FirstOrDefault();

                    List <PagoEntity> pagos = await _context.Pago
                                              .Where(p => p.Valeid == pagoEntity.Valeid && p.Pagado == true)
                                              .ToListAsync();

                    if (pagos.Count == vale.CantidadPagos)
                    {
                        vale.Pagado = true;
                    }
                    else
                    {
                        vale.Pagado = false;
                    }

                    _context.Update(vale);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ValeEntityExists(pagoEntity.id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }

                Debug.WriteLine("NAVID");
                Debug.WriteLine(navId);

                if (navId == 1)
                {
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    return(RedirectToAction("VerPagos/" + pagoEntity.Valeid));
                }
            }
            return(View(pagoEntity));
        }
        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());
        }