public async Task <Response> PostVale( string urlBase, string servicePrefix, string controller, CreateValeRequest request) { try { string requestString = JsonConvert.SerializeObject(request); StringContent content = new StringContent(requestString, Encoding.UTF8, "application/json"); HttpClient client = new HttpClient { BaseAddress = new Uri(urlBase) }; string url = $"{servicePrefix}{controller}"; HttpResponseMessage response = await client.PostAsync(url, content); string result = await response.Content.ReadAsStringAsync(); if (!response.IsSuccessStatusCode) { return(new Response { IsSuccess = false, Message = result, }); } return(new Response { IsSuccess = true, Result = "exitoso" }); } catch (Exception ex) { return(new Response { IsSuccess = false, Message = ex.Message }); } }
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()); }