Cliente CrearNuevoCliente(ClienteDTO pClienteDTO, ClienteDireccion pClienteDireccionPrimero,
                                  ClienteDireccion pClienteDireccionSegundo)
        {
            try
            {
                Cliente nuevoCliente = ClienteFactory.CrearCliente(pClienteDTO.CodigoCliente, pClienteDTO.CodigoContable, pClienteDTO.Ruc,
                                                                   pClienteDTO.NombresORazonSocial, pClienteDTO.Telefono, pClienteDTO.Fax,
                                                                   pClienteDTO.FechaNacimiento, pClienteDTO.FechaInscripcion, pClienteDTO.DiasDeGracia,
                                                                   pClienteDTO.MontoLimiteCredito, pClienteDTO.Deuda, pClienteDTO.EsAfecto,
                                                                   pClienteDTO.ControlarSaldoDisponible, pClienteDTO.CodigoMoneda, pClienteDTO.CodigoClaseTipoCambio,
                                                                   pClienteDTO.CodigoTipoCliente, pClienteDTO.CodigoZonaCliente, pClienteDTO.CodigoDiaDePago,
                                                                   pClienteDTO.CodigoVendedor, pClienteDTO.CodigoImpuestoIgv, pClienteDTO.CodigoImpuestoIsc,
                                                                   pClienteDTO.CodigoCondicionPagoDocumentoGenerado, pClienteDTO.CodigoCondicionPagoTicket, pClienteDTO.CodigoEstadoDeCliente,
                                                                   pClienteDTO.CodigoUsuarioDeSistema, pClienteDTO.CodigoPais, pClienteDTO.CodigoDepartamento,
                                                                   pClienteDTO.CodigoDistrito, pClienteDireccionPrimero, pClienteDireccionSegundo);

                //Placas
                if (pClienteDTO.ClientePlacas != null && pClienteDTO.ClientePlacas.Any())
                {
                    foreach (var placa in pClienteDTO.ClientePlacas)
                    {
                        var detalleDePedido = nuevoCliente.AgregarNuevoClientePlaca(placa.DescripcionPlaca);
                    }
                }

                return(nuevoCliente);
            }
            catch (Exception ex)
            {
                string detallesAsicionales = string.Empty;
                string cadenaExcepcion     = ex.Message;

                if (ex.InnerException != null)
                {
                    detallesAsicionales = " .Detalles Interno: " + ex.InnerException != null && ex.InnerException.InnerException != null ?
                                          ex.InnerException.InnerException.Message : "Ver Detalles.";
                }

                LogFactory.CrearLog().LogWarning(cadenaExcepcion + detallesAsicionales);
                throw;
            }
        }