public async Task <ActionResult <PaymentScheduleRulesByCustomer> > Insert([FromBody] PaymentScheduleRulesByCustomer _PaymentScheduleRulesByCustomer)
        {
            PaymentScheduleRulesByCustomer _PaymentScheduleRulesByCustomerq = new PaymentScheduleRulesByCustomer();

            try
            {
                using (var transaction = _context.Database.BeginTransaction())
                {
                    try
                    {
                        _PaymentScheduleRulesByCustomerq = _PaymentScheduleRulesByCustomer;
                        Customer _custo = await _context.Customer
                                          .Where(q => q.CustomerId == _PaymentScheduleRulesByCustomer.CustomerId).FirstOrDefaultAsync();

                        _PaymentScheduleRulesByCustomerq.CustomerName = _custo.CustomerName;
                        _context.PaymentScheduleRulesByCustomer.Add(_PaymentScheduleRulesByCustomerq);
                        await _context.SaveChangesAsync();

                        BitacoraWrite _write = new BitacoraWrite(_context, new Bitacora
                        {
                            IdOperacion  = _PaymentScheduleRulesByCustomerq.PaymentScheduleRulesByCustomerId,
                            DocType      = "PaymentScheduleRulesByCustomer",
                            ClaseInicial =
                                Newtonsoft.Json.JsonConvert.SerializeObject(_PaymentScheduleRulesByCustomerq, new JsonSerializerSettings {
                                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                            }),
                            Accion              = "Insertar",
                            FechaCreacion       = DateTime.Now,
                            FechaModificacion   = DateTime.Now,
                            UsuarioCreacion     = _PaymentScheduleRulesByCustomerq.UsuarioCreacion,
                            UsuarioModificacion = _PaymentScheduleRulesByCustomerq.UsuarioModificacion,
                            UsuarioEjecucion    = _PaymentScheduleRulesByCustomerq.UsuarioModificacion,
                        });



                        await _context.SaveChangesAsync();

                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        _logger.LogError($"Ocurrio un error: { ex.ToString() }");
                        throw ex;
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"Ocurrio un error: { ex.ToString() }");
                return(await Task.Run(() => BadRequest($"Ocurrio un error:{ex.Message}")));
            }

            return(await Task.Run(() => Ok(_PaymentScheduleRulesByCustomerq)));
        }
        public async Task <IActionResult> GetPaymentScheduleRulesByCustomerById(Int64 PaymentScheduleRulesByCustomerId)
        {
            PaymentScheduleRulesByCustomer Items = new PaymentScheduleRulesByCustomer();

            try
            {
                Items = await _context.PaymentScheduleRulesByCustomer.Where(q => q.PaymentScheduleRulesByCustomerId == PaymentScheduleRulesByCustomerId).FirstOrDefaultAsync();
            }
            catch (Exception ex)
            {
                _logger.LogError($"Ocurrio un error: { ex.ToString() }");
                return(await Task.Run(() => BadRequest($"Ocurrio un error:{ex.Message}")));
            }


            return(await Task.Run(() => Ok(Items)));
        }